Как вывести категории с записями в сайдбар

(Ответов: 8, Просмотров: 1783)
  1. Banned
    • Регистрация: 16.02.2012
    • Сообщений: 357
    • Репутация: 40
    Здравствуйте. Как вывести категории с превьюшками и анонсами в сайдбар? Сделать типа такого:Нажмите на изображение для увеличения.  Название:	ca4ec1065812.jpg  Просмотров:	33  Размер:	58.4 Кб  ID:	5485 Спасибо.
    • 0
  2. Banned
    • Регистрация: 29.08.2011
    • Сообщений: 536
    • Репутация: 89
    Можно использовать плагин для вывода последних изображений с миниаютюрами, если это wordpress.
    • 0
  3. Banned
    • Регистрация: 16.02.2012
    • Сообщений: 357
    • Репутация: 40
    Это вордпресс. Как плагин называется?
    • 0
  4. Banned
    • Регистрация: 29.08.2011
    • Сообщений: 536
    • Репутация: 89
    Better Recent Posts (ссылка, _http://wordpress.org/extend/plugins/better-recent-posts-widget/), если нужно вывести одну рубрику, пользуйтесь функцией исключения всех остальных рубрик по ID.
    • 1

    Спасибо сказали:

    procsi(12.08.2012),
  5. Banned
    • Регистрация: 16.02.2012
    • Сообщений: 357
    • Репутация: 40
    Если бы еще анонс можно было бы добавить, а только вывод заголовка, тогда этому плагину цены бы не было.
    • 0
  6. Banned
    • Регистрация: 29.08.2011
    • Сообщений: 536
    • Репутация: 89
    Как вариант попробуйте поискать сайты на wp с нужной вам функцией и поспрашивать у владельцев, чем они ее реализовали (как мне кажется плагин с нужной функцией существует).

    p.s. Существует плагин Advanced Most Recent Posts, он выполняет требуемые функции (выводит заголовок, миниатюру и анонс), но как - то кривовато выводит картинку. попробуйте, может разберетесь.
    Последний раз редактировалось Tramp5; 12.08.2012 в 21:37. Причина: Добавление
    • 0
  7. Опытный
    • Регистрация: 13.01.2011
    • Сообщений: 250
    • Репутация: 42
    • Webmoney BL: ?
    Вот собрал несколько кодов в кучу чтобы реализовать вашу функцию без плагина:

    это вставляем в functions.php:
    PHP код:
    function catch_that_image() {
      global 
    $post$posts;
      
    $first_img '';
      
    ob_start();
      
    ob_end_clean();
      
    $output preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i'$post->post_content$matches);
      
    $first_img $matches [1] [0];

    // Если изображение отсутствует, то выводим изображение по умолчанию (указать путь к изображению)
      
    if(empty($first_img)){
        
    $first_img "/images/default.jpg";
      }
      return 
    $first_img;
    }

     function 
    do_excerpt($string$word_limit) {
    $words explode(' '$string, ($word_limit 1));
    if (
    count($words) > $word_limit)
    array_pop($words);
    echo 
    implode(' '$words).' ...';

    это в сидибар:
    PHP код:
    <?php if ( in_category('news') ) : ?> //
      <?php $categories '1'?>
     <?php endif; ?>
        <?php
    $categories 
    get_the_category($post->ID);
    if (
    $categories) {
        
    $category_ids = array();
        foreach(
    $categories as $individual_category$category_ids[] = $individual_category->term_id;
        
    $args=array(
            
    'cat' => 1// id категории
            
    'category__in' => $category_ids,
            
    'post__not_in' => array($post->ID),
            
    'showposts'=>// Количество записей для показа.
     

        
    );
        
    $my_query = new wp_query($args);
        if( 
    $my_query->have_posts() ) {
            echo 
    '<h3>Автоновинки</h3><ul>'// название категории
            
    while ($my_query->have_posts()) {
                
    $my_query->the_post();
            
    ?>
               <div style="padding-left:8px;">
                        <h5><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a> </h5>
               <div style="float: left;margin-right: 15px">

    <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
      <img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" height="50"/> // 50 - размеры изоображений
    </a>
    </div> 
    <?php do_excerpt(get_the_excerpt(), 50); ?> // 50 - количество символов анонса
             </div><br>
            <?php
            
    }
            echo 
    '</ul>';
        }
    }
    ?>
        </div>
    но выводят в таком виде все это только на главной а если заходшь в категорию то все слегка криво, не знаю как сделать дальше думаю дальше кто то еще подскажет
    • 2

    Спасибо сказали:

    MacLipson(28.11.2012), procsi(26.08.2012),
  8. WP-R.ru - магазин WP Аватар для mojwp
    • Регистрация: 13.09.2011
    • Сообщений: 841
    • Репутация: 290
    • Webmoney BL: ?
    в рекомендованный вначале плагин добавьте код для custom fields и будет вам описание
    • 0
  9. Студент
    • Регистрация: 09.04.2010
    • Сообщений: 86
    • Репутация: 8
    ещё один вариант

    Этот код в functions.php
    PHP код:
    <?php
    /*Анонсы*/
    function kama_excerpt_post($args=''){
        global 
    $post;
            
    parse_str($args$i);
            
    $maxchar      = isset($i['maxchar']) ?  (int)trim($i['maxchar'])        : 150;
            
    $text          = isset($i['text']) ?             trim($i['text'])        : '';
            
    $save_format = isset($i['save_format']) ?    trim($i['save_format'])            : false;
            
    $echo         = isset($i['echo']) ?             false                     true;

        if (!
    $text){
            
    $out $post->post_excerpt $post->post_excerpt $post->post_content;
            
    $out preg_replace ("!\[/?.*\]!U"''$out ); //убираем шоткоды, например:[singlepic id=3]
            // для тега <!--more-->
        /*if( !$post->post_excerpt && strpos($post->post_content, '<!--more-->') ){
                preg_match ('/(.*)<!--more-->/s', $out, $match);
                $out = str_replace("\r", '', trim($match[1], "\n"));
                $out = preg_replace( "!\n\n+!s", "</p><p>", $out );
                $out = "<p>". str_replace( "\n", "<br />", $out ) ."</p>";
                if ($echo)
                    return print $out;
                return $out;
            }*/
        
    }

        
    $out $text.$out;
        if (!
    $post->post_excerpt)
            
    $out strip_tags($out$save_format);

        if ( 
    iconv_strlen($out'utf-8') > $maxchar ){
            
    $out iconv_substr$out0$maxchar'utf-8' );
            
    $out preg_replace('@(.*)\s[^\s]*$@s''\\1 ...'$out); //убираем последнее слово, ибо оно в 99% случаев неполное
        
    }

        if(
    $save_format){
            
    $out str_replace"\r"''$out );
            
    $out preg_replace"!\n\n+!""</p><p>"$out );
            
    $out "<p>"str_replace "\n""<br />"trim($out) ) ."</p>";
        }

        if(
    $echo) return print $out;
        return 
    $out;
    }
    /*\Анонсы*/

    //картинка к анонсу
    function catch_that_image() {
    global 
    $post$posts;
    $first_img '';
    ob_start();
    ob_end_clean();
    $output preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i'$post->post_content$matches);
    $first_img $matches [1] [0];

    // no image found display default image instead
    if(empty($first_img)){
    $first_img "/wp-content/uploads/2012/no-images.jpg";
    }
    return 
    $first_img;
    }

    ?>
    А это в нужное место
    PHP код:
    <?php

    $args 
    = array(
        
    'numberposts'     => ,
        
    'offset'          => 0,
        
    'category'        => '1',
        
    'orderby'         => 'post_date',
        
    'order'           => 'DESC',
        
    'post_type'       => 'post',
        
    'post_status'     => 'published'
    );

    $posts get_posts($args);
    foreach(
    $posts as $post){ setup_postdata($post);
        
    // формат вывода
    ?>
    <div id="menu">
    <img class="menuimg"src="<?php echo catch_that_image(); ?>" alt="<?php the_title(); ?>" />
    <div class="menutitle">

    <h3><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h3></div>
    <?php kama_excerpt_post(); ?></div>
    <?            }
    wp_reset_postdata();
    Не забудьте прописать стили в style.css

    Рекомендую ознакомится с возможностями wordpress на блоге Kama get_posts и query_posts
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Проблема с похожими записями картинками
WordPress 1 23.07.2012 20:43
сайдбар в WP редактируется только через виджеты, как исправить?
WordPress 7 11.04.2012 18:46
Проблема с записями в Wordpress
WordPress 16 29.03.2012 17:43
Как сделать 2-х колоночный сайдбар в вордпресс.
WordPress 8 17.03.2012 23:22
Пропал сайдбар в WP
Web программирование 2 24.08.2011 23:01

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры