Получение 5 последних записей из пользовательского типа записей 'announcements'

21 авг. 2011 г., 21:15:00
Просмотры: 16K
Голосов: 3

У меня есть пользовательский тип записей announcements, который, очевидно, содержит записи с еженедельными объявлениями.

В шапке моей темы я хочу создать блок со следующей структурой:

<div id="header-announcements">
    <h3>Объявления</h3>
        <ul>
            <li><a href="post-permalink">Заголовок</a></li>
            <li><a href="post-permalink">Заголовок</a></li>
            <li><a href="post-permalink">Заголовок</a></li>
            <li><a href="post-permalink">Заголовок</a></li>
            <li><a href="post-permalink">Заголовок</a></li>
        </ul>
    <div><a href="#">Показать ещё</a></div>
</div>

Я знаю, что нужно использовать wp_query() и нашел, что мне нужно сделать что-то подобное:

$ann_query = new WP_Query('post_type=announcements&posts_per_page=5');

Я понимаю, что нужно использовать цикл foreach, но пока не углублялся в WordPress настолько, чтобы знать, что делать после выполнения запроса.

Любая помощь?

Спасибо!

1
Комментарии

Вам нужно будет вызвать цикл (loop) и извлечь информацию для каждой записи, например, the_title() и т.д. Также сначала проверьте, есть ли какие-либо результаты, используя функцию have_posts()

Assad Nazar Assad Nazar
21 авг. 2011 г. 21:42:28
Все ответы на вопрос 2
3

Следующий код должен работать, но не был протестирован:

<div id="header-announcements">
<h3>Объявления</h3>
<?php
$queryObject = new WP_Query( 'post_type=announcements&posts_per_page=5' );
// Цикл
if ($queryObject->have_posts()) {
    ?>
    <ul>
    <?php
    while ($queryObject->have_posts()) {
        $queryObject->the_post();
        ?>

        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php
    }
    ?>
    </ul>
    <div><a href="#">Показать больше</a></div>
    <?php
}
?>
</div>
21 авг. 2011 г. 22:19:40
Комментарии

Огромное спасибо! Это сработало идеально, однако при копировании и вставке возникла ошибка PHP, но она легко исправилась добавлением <?php на 15 строку вашего блока кода. Ещё раз спасибо!

Josh Allen Josh Allen
22 авг. 2011 г. 07:08:37

Упс! Спасибо, что исправили. Вот что бывает, когда не тестируешь код :)

helenhousandi helenhousandi
22 авг. 2011 г. 18:10:36

Спасибо! Это было очень полезно и выглядит гораздо элегантнее других решений, которые я видел. Правда, есть одна проблема: при размещении внутри записи, код не может исключить текущую запись из списка. В остальном - отлично!

Aslan French Aslan French
28 нояб. 2018 г. 04:42:02
0
-1

Вам нужно использовать цикл foreach, так как этот запрос возвращает массив объектов. Внутри этого цикла вы можете использовать свойства этих объектов для отображения данных. Например, вы можете использовать:

$object->post_title, $object->post_content, $object->url
21 авг. 2011 г. 22:09:43