Функция Wordpress, чтобы показать последние три сообщения - отрывок не работает хорошо

У меня есть функция php, которая должна печатать последние три сообщения: заголовок и отрывок.

Для первого напечатанного поста нет выдержки.

Вот код:

  $posts = wp_get_recent_posts( array('numberposts' => 3, 'post_status' => 'publish')  );
  foreach ($posts as $post)
  {
    setup_postdata($post);
    echo "<h2 style='font-size:18px'>".$post['post_title']."</h2>";
    if($post['post_excerpt']) 
         echo $post['post_excerpt']." <a href='".get_permalink($post['ID'])."'     style='font-size: 17px;'><b>Continue...</b></a>";
    else echo 'no excerpt';
    echo "<br><br />";
  }

Я хочу обуть отрывок и для первого напечатанного поста (последнего опубликованного). Что не так в моем коде? Почему это не работает для первого напечатанного поста?


person Pascut    schedule 11.10.2012    source источник
comment
Я создал плагин, в котором я регистрирую виджет боковой панели. В этом плагине я использую приведенный выше код. Пожалуйста, сообщите мне, если у вас есть другая идея, как показать последние сообщения. Это работает почти хорошо, для первого полученного сообщения отрывок отсутствует (если я добавлю новый пост, проблема будет такой же)   -  person Pascut    schedule 12.10.2012


Ответы (1)


Ваша петля странная. Почему бы просто не использовать обычный цикл WP_Query()?

<?php

// The Query
$the_query = new WP_Query( 'posts_per_page=3' );

// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();
    echo '<li>';
    the_title();
    the_excerpt();
    echo '</li>';
endwhile;

// Reset Post Data
wp_reset_postdata();

или, если вы ЖЕНАТ своего, выполните var_dump( $posts ) и посмотрите, какая переменная содержит строку, которую вы ищете.

person Xhynk    schedule 11.10.2012
comment
@RaresP. Тогда, пожалуйста, отметьте это как ответ. Это поможет будущим пользователям и посетителям, у которых может возникнуть тот же вопрос, что и у вас. - person maiorano84; 12.10.2012