Как заставить пагинацию работать с «ожидающими» сообщениями

Я работаю над сайтом, который позволяет пользователям просматривать ожидающие сообщения/контент в интерфейсе.

Тем не менее, я не могу заставить работать разбиение на страницы с этими сообщениями. У меня есть пользовательский запрос, который выводит первую страницу ожидающих сообщений на странице категории, архиве и т. д.

Но страница 2, 3 и т. д. не работает.

есть идеи?

Спасибо!

Вот пример кода, с которым я работаю:

$args = array(
    'cat'      => $cat_ID,
    'paged' => get_query_var('paged'),
    'showposts' => 50,
    'posts_per_page' => 50,
    'post_status' => 'pending',

);

query_posts($args);

if( have_posts() ) : while (have_posts()) : the_post();

//Post code inserted here

<?php endwhile; ?>
<?php endif; ?>

person David    schedule 29.06.2012    source источник
comment
это часть шаблона страницы? кроме того, if перед while не нужен и, вероятно, портит ваш цикл итераций.   -  person Toote    schedule 30.06.2012
comment
Согласно scribu.net/wordpress/wp-pagenavi/ вам следует попробовать переменную страницы. также было бы здорово, если бы вы пояснили, что означает «не работает».   -  person Toote    schedule 30.06.2012
comment
Привет. На самом деле это измененная страница категории. Он отлично работает при загрузке этой страницы, но /category/page/2/ не загружается. Я получаю страницу ошибки 404. В основном это не поиск ожидающих сообщений в этом случае. page vs. paged ничего не изменили для меня.   -  person David    schedule 30.06.2012
comment
какова ваша структура постоянных ссылок и как выглядит базовая ссылка на страницу (если вы не указываете страницу)?   -  person Toote    schedule 30.06.2012
comment
Конечно. Это страница example.com/category/category-name. Это покажет ожидающие сообщения с кодом выше. Но та же ссылка с /page/2/ и выше выдаст ошибку 404. У меня установлены постоянные ссылки /%category%/%postname%/. Однако я не знаю, имеет ли к этому какое-либо отношение этот параметр постоянных ссылок, потому что опубликованные сообщения работают нормально и будут отображаться с кодом выше. Я думаю, что Wordpress просто настроен для работы только с опубликованными сообщениями на страницах с разбивкой на страницы. Я пытаюсь найти способ обойти это.   -  person David    schedule 30.06.2012
comment
Я понимаю. Не могли бы вы отредактировать свой пост, указав, где именно находится этот код и как он взаимодействует с основным циклом WordPress и структурой страницы? Без всей схемы того, как вы выполняете свой код и где вам сложно помочь.   -  person Toote    schedule 01.07.2012
comment
Объявить глобальный $paged; & добавьте его в массив запросов 'paged' => $paged для рабочей нумерации страниц.   -  person Ajay Patel    schedule 11.07.2012


Ответы (1)


Разбивка на страницы WordPress будет 404, если в основном запросе недостаточно результатов для перехода на эту страницу.

Я уверен, что есть лучший способ, но единственный способ, который я могу придумать, - это использовать свой собственный цикл на странице архива/поиска, на которой больше сообщений, чем черновиков.

Например, добавьте свой пользовательский цикл в шаблон search.php и доберитесь до него, передав поисковый запрос, который будет генерировать множество результатов (например, «а»). Использование search.php будет включать страницы, сообщения и пользовательские типы сообщений в результаты, что даст больше результатов.

Используйте paginate_links для разбивки на страницы, которые будут продолжать передавать переменную запроса на каждой странице, и после этого все должно быть хорошо.

В качестве отдельной заметки я бы предложил использовать WP_Query вместо query_posts. Почему смотрите здесь.

person Mark    schedule 18.08.2012
comment
Да, в настоящее время действительно нет ответа, кроме как предложить изменение команде разработчиков Wordpress. То, что вы говорите, вероятно, лучшая альтернатива, которую я мог найти. Спасибо за вашу помощь! - person David; 20.08.2012