Как ограничить количество записей

4 апр. 2011 г., 11:59:01
Просмотры: 30.6K
Голосов: 3

У меня возник вопрос, как можно ограничить количество записей, получаемых из этого запроса? Мне нужно только 7

<?php
$newsposts = new WP_Query('cat=restaurant');
if ( is_front_page()) { 
    echo '<h3 class="member-review">Последние рестораны</h3>
    <div id="extra">';
    if ($newsposts->have_posts()) : while ($newsposts->have_posts()) : $newsposts->the_post();
        echo '<div class="reslogo"><img src="'.catch_that_image().'"/></div>';
    endwhile; endif; 
    echo '</div>';    
} 
?>

Я пытался написать: ('cat=restaurants'.'limit=7'), но это не работает. Где я ошибся? Буду благодарен за любую помощь

0
Все ответы на вопрос 3
1
11

Это должно выглядеть так:

$newsposts = new WP_Query('cat=restaurant&posts_per_page=7');

Другой способ записи (улучшает читаемость при больших запросах):

$newsposts = new WP_Query(array(
    'cat' => 'restaurant',
    'posts_per_page' => 7,
));

Смотрите описание доступных параметров в WP_Query в Кодексе.

P.S. Хорошей практикой будет добавить wp_reset_postdata() в конце. Вы (правильно) не изменяете основной запрос, но этим циклом изменяете глобальную переменную $post.

4 апр. 2011 г. 12:04:52
Комментарии

Привет, Rarst, спасибо за помощь. Теперь все понятно - добавление амперсанда & позволяет добавлять дополнительные условия. Я также лучше разобрался с парой ключ-значение в массиве. Я добавил ваш wp_reset_postdata() и буду использовать его в дальнейшем. Отлично!

brett brett
4 апр. 2011 г. 12:32:03
0

Вот что работает у меня (showposts):

$query = new WP_Query(array(
        'showposts' => 4, 
        'post_type' => 'xxx',
        'cache_results' => false
    ));
14 мая 2016 г. 01:39:39
0
-1

Думаю, здесь небольшая ошибка: параметр 'cat' принимает только ID записи в виде целого числа (Integer).

Источник: WP_Query Параметры

15 авг. 2011 г. 16:13:33