[Помогите] вывод постов в сайдбаре

Тема в разделе "Wordpress", создана пользователем Jaarg, 24 окт 2010.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. Jaarg

    Jaarg

    Регистр.:
    18 авг 2008
    Сообщения:
    503
    Симпатии:
    97
    нужно вывести в сайдбаре посты из определенной категории в следующем формате:
    дата
    заголовок
    анонс

    дата и заголовок - без проблем, а с анонсом чето как то туплю.

    использую следующий код:
    PHP:
    <h2>Заголовок</h2>
    <ul>
     <?php $posts get_posts("numberposts=10&orderby=post_date&order=DESC&category=3"); foreach($posts as $post) : ?>  
    <li>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
     <?php endforeach; ?>
     </ul>
    как бы еще анонс сюда? 5-10 слов :)
     
  2. BadMotherFucker

    BadMotherFucker Модератор (Core Team)

    Регистр.:
    13 ноя 2009
    Сообщения:
    784
    Симпатии:
    560
    Могу предложить вот такой вариант:
    Код:
    <h2>Заголовок</h2>
    <ul>
     <?php $posts = get_posts("numberposts=10&orderby=post_date&order=DESC&category=3"); foreach($posts as $post) : ?>  
    <li>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
    <?php the_excerpt(); ?>
     <?php endforeach; ?>
     </ul>
    Единственное условие:
    Для каждого поста обязательно должен быть прописан Excerpt
     
    Jaarg нравится это.
  3. Jaarg

    Jaarg

    Регистр.:
    18 авг 2008
    Сообщения:
    503
    Симпатии:
    97
    Спасибо )Пожалуй, в моем случае это оптимальный вариант, так как длина текста сильно влияет на диз, а тут я могу регулировать сам - сколько слов :)
     
  4. BadMotherFucker

    BadMotherFucker Модератор (Core Team)

    Регистр.:
    13 ноя 2009
    Сообщения:
    784
    Симпатии:
    560
    Есть еще вариант с <?php the_content_rss(); ?>, через эту функцию можно задавать на сколько обрезать пост.
    Код:
    <?php the_content_rss('', TRUE, '', 50); ?>
    http://codex.wordpress.org/Template_Tags/the_content_rss
    Но здесь есть проблема, так как начиная с версии 2.9, данную функцию убрали.

     
  5. Kewin

    Kewin Постоялец

    Регистр.:
    15 сен 2010
    Сообщения:
    73
    Симпатии:
    8
    Зачем изобретать велосипед?
    Используй плагин sideblog и будет тебе счастье.
     
  6. veh

    veh Создатель

    Регистр.:
    24 ноя 2009
    Сообщения:
    39
    Симпатии:
    4
    А зачем грузить WP плагинами, если необходимый функционал отлично реализуется с помощью кодов (в том числе и предложенными выше)?

    Со мной многие согласятся - что лучше использовать возможности движка и стараться не грузить его плагинами... Тем более товарищ ТС сам привел в пример код.
     
  7. xbreaker

    xbreaker Вверх ногами

    Регистр.:
    15 авг 2007
    Сообщения:
    245
    Симпатии:
    52
    я так же бы советовал ТС оборачивать дополнительные лупы (loop) следующим образом:
    PHP:
    <?php $temp_query $wp_query;
     
    $posts get_posts("numberposts=10&orderby=post_date&order=DESC&category=3"); 
    foreach(
    $posts as $post) : the_excerpt(); endforeach; 
    $wp_query $temp_query?>
    это исключит возможность конфликта, когда на странице располагаются несколько блоков с лупами вывода постов
     
  8. Jaarg

    Jaarg

    Регистр.:
    18 авг 2008
    Сообщения:
    503
    Симпатии:
    97
    в итоге я остановился на такой конструкции:

    PHP:
    <?php
     
    global $post;
     
    $tmp_post $post;
     
    $myposts get_posts('numberposts=2&offset=0&category=3');
     foreach(
    $myposts as $post) :
       
    setup_postdata($post);
     
    ?>
              <h3> <a href="<?php the_permalink(); ?>">
                <?php the_title(); ?>
                </a></h3>
              <p>
                <?php the_excerpt(); ?>
              </p>
              <?php endforeach; ?>
              <?php $post $tmp_post?>
    часть решения - с офф сайта, а вывод анонса - благодаря злооому BadMotherFucker :)
     
Статус темы:
Закрыта.