WP_query и пагинация?

17 окт. 2011 г., 13:51:34
Просмотры: 16K
Голосов: 0

Мне нужно получить некоторые пользовательские типы записей и сделать это с помощью WP_Query (query_posts не работает).

Как я могу реализовать пагинацию? Что бы я ни пробовал - ничего не работает... Любая помощь будет очень кстати, сам не могу разобраться...

$args = array(
'tax_query' => array(
   'posts_per_page' => 5,
    array(
    'author' => $user_id,
        'taxonomy' => 'custom_taxtype',
        'field' => 'slug',
        'terms' => 'delicious-food',
    )
) 
); 
$answer_query = new WP_Query( $args );

//// Цикл по результатам

while ( $answer_query->have_posts() ) : $answer_query->the_post();

//// делаем что-то

endwhile;
4
Комментарии

Добавьте аргумент paged => 1,2...n, и я думаю, что posts_per_page, а также paged должны быть вне массива tax_query.

soulseekah soulseekah
17 окт. 2011 г. 13:56:56

Спасибо, да, только что сделал это, теперь я могу ограничивать посты. Это первый шаг!

deltakid deltakid
17 окт. 2011 г. 14:27:51

Вы добавили paged и установили его на номер страницы, которую ищете?

soulseekah soulseekah
17 окт. 2011 г. 14:30:40

Я установил его, но с ним можно только выбрать нужную страницу, а пагинация не работает. Для пагинации я использую стандартную функцию WordPress next_posts_link();.

deltakid deltakid
17 окт. 2011 г. 14:33:00
Все ответы на вопрос 2
2

ЕСЛИ вы замените $my_query на $wp_query, всё должно заработать. Внутренние функции WordPress next_posts_link и previous_posts_link ожидают, что объект запроса будет называться $wp_query.

13 мар. 2013 г. 16:18:10
Комментарии

Делая это, вы также перезаписываете основной запрос, что может привести к нежелательным последствиям. Не могли бы вы отредактировать ответ, чтобы объяснить, как избежать этой проблемы? Также лучше публиковать в ответе код, который потенциально может работать.

s_ha_dum s_ha_dum
13 мар. 2013 г. 16:40:10

Вау... отличный совет!

Stavros Stavros
28 окт. 2021 г. 22:58:02
4

Если вы расскажете нам, что именно вы пытаетесь сделать, мы сможем помочь вам лучше!

<?php
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array(
               'post_type' => 'question',
               'posts_per_page' => -1,
               'paged' => $paged,
               'author' => $user_id
            );
$my_query = new WP_Query($args);

if($my_query->have_posts()):
    while($my_query->have_posts()):$my_query->the_post();
        //Цикл будет здесь...
    endwhile;
    //поддержка плагина page-navi, пожалуйста, ознакомьтесь с readme.txt для дальнейших инструкций
    if ( function_exists('wp_pagenavi') )
    {
        wp_pagenavi();
    }
    elseif ( get_next_posts_link() || get_previous_posts_link() )
    {
        ?>
        <div class="wp-navigation clearfix">
            <div class="alignleft"><?php //next_posts_link('&laquo; Старые записи'); ?></div>
            <div class="alignright"><?php //previous_posts_link('Новые записи &raquo;'); ?></div>
        </div>
<?php } //if wp_pagenavi
endif;
?>

Ознакомьтесь с документацией WP_Query для получения дополнительных параметров.

Кстати, query_posts также работает с пользовательскими записями, так как принимает все параметры, которые можно передать в WP_Query.

17 окт. 2011 г. 14:07:18
Комментарии

Спасибо, Ruwick. Я просто хочу получить все записи из пользовательского формата записей под названием "questions", и этот формат имеет различные категории, которые определены как пользовательские таксономии. С помощью вышеуказанного запроса я могу получить последние записи для определенной таксономии, но не могу заставить работать пагинацию.

deltakid deltakid
17 окт. 2011 г. 14:28:54

Ты установил WP-Pagenavi? Я пропустил эту часть, проверь новый код в моем ответе. Я добавил часть с пагинацией.

Rutwick Gangurde Rutwick Gangurde
17 окт. 2011 г. 14:35:12

Большое спасибо! Да, теперь все работает. Я немного модифицировал код и использовал код от layotte отсюда. http://wordpress.org/support/topic/adding-pagination-to-a-wp-query-loop?replies=16

deltakid deltakid
17 окт. 2011 г. 14:45:32

Отличная работа, чувак! :)

Rutwick Gangurde Rutwick Gangurde
17 окт. 2011 г. 14:46:45