get_query_var( 'paged' ) не работает за пределами главной страницы

25 авг. 2011 г., 01:20:50
Просмотры: 37.7K
Голосов: 7

Тема Twenty Eleven...

На главной странице я успешно отфильтровал цикл для отображения только "Избранных" записей с правильно работающей пагинацией через навигационные ссылки. Я пытаюсь отобразить записи из всех категорий на другой странице под названием "Нефильтрованные". Почему навигационные ссылки исчезают при использовании на этой другой странице?

редактировать: если я изменяю значение 'paged' на '1' или '2', я получаю 10 записей, которые ожидаю увидеть, поэтому 'paged', похоже, работает в зависимости от установленного значения, но не работает, когда я устанавливаю его как get_query_var( 'paged' )

<?php /* $paged = ( get_query_var('page') ) ? get_query_var('page') : 1; */ 

            $unfiltered_query = new WP_Query ( 

            array (
                'posts_per_page' => 10,
                'paged' =>  get_query_var( 'paged' )
            ) 

        );?>

        <?php if ( $unfiltered_query->have_posts() ) : ?>

            <?php twentyeleven_content_nav( 'nav-above' ); ?>

            <?php /* Начало цикла */ ?>

                <?php while ( $unfiltered_query->have_posts() ) : $unfiltered_query->the_post(); ?>

                <?php get_template_part( 'excerpt', get_post_format() ); ?>

            <?php endwhile; ?>

            <?php twentyeleven_content_nav( 'nav-below' ); ?>
3
Комментарии

Пожалуйста, переместите ваш рабочий код в отдельный ответ, обычно это соответствует механике сайта лучше, чем редактирование в вопросе.

Rarst Rarst
27 авг. 2011 г. 00:56:37

Но тогда он затеряется среди непринятых ответов? Хмм...

Adam Adam
27 авг. 2011 г. 03:19:19

Нет правила, что полезным и оцененным может быть только один ответ. :) Вы можете оставить комментарий к принятому ответу и указать, что добавили решение, к которому он привел, в виде отдельного ответа.

Rarst Rarst
27 авг. 2011 г. 12:35:23
Все ответы на вопрос 4
4

Аргумент для WP_Query - это paged, но переменная запроса - это page, без буквы 'd' в конце.

'paged' =>  get_query_var( 'paged' )

должно быть:

'paged' =>  get_query_var( 'page' )
25 авг. 2011 г. 01:35:34
Комментарии

Тоже пробовал это. Навигация по контенту всё ещё отсутствует. Даже пробовал добавлять wp_reset_query();

И на случай, если возникнут вопросы, я использую $home_query на главной странице.

Adam Adam
25 авг. 2011 г. 01:46:12

Я пытаюсь найти разницу между параметрами paged и page. Не могли бы вы предоставить мне ссылки на какие-либо ресурсы?

Rohit Pande Rohit Pande
25 янв. 2013 г. 11:53:05

@RohitPande - посмотрите WP_Query параметры пагинации. Думаю, оба на самом деле работают в большинстве случаев.

Milo Milo
25 янв. 2013 г. 17:46:41

В моем случае этот ответ работает, когда я изменяю get_query_var('page'), убрав d. Мой URL выглядит так: <domain-name>/page/2/

Felix H. Felix H.
5 дек. 2024 г. 14:19:16
0

twentyeleven_content_nav() использует основной объект запроса $wp_query. Вам нужно будет использовать переменную $wp_query вместо $unfiltered_query, затем wp_reset_query() для восстановления оригинального $wp_query (который он найдёт в $wp_the_query, с чем вам, вероятно, не стоит работать напрямую).

Пока вы аккуратно восстанавливаете исходный запрос, всё в порядке.

Я бы предложил патч для ядра, который позволит функции twentyeleven_content_nav() опционально принимать объект запроса для выполнения своих вычислений.

25 авг. 2011 г. 21:06:12
0

Что если заменить get_query_var( 'paged' ) на глобальную переменную $paged? Например, заменить это:

$unfiltered_query = new WP_Query ( 

    array (
        'posts_per_page' => 10,
        'paged' =>  get_query_var( 'paged' )
) 

...на это:

global $paged;

$unfiltered_query = new WP_Query ( 

    array (
        'posts_per_page' => 10,
        'paged' =>  $paged
) 

РЕДАКТИРОВАНИЕ

Ладно, видимо, это не сработает. Глобальная переменная $paged, по-видимому, не устанавливается до выполнения запроса.

25 авг. 2011 г. 01:55:45
0

Я использовал непосредственно wp_Query->paged, и это сработало хорошо, в отличие от get_query_var( 'paged' ), который у меня не работал.

13 окт. 2019 г. 22:35:06