web-dev-qa-db-ja.com

get_query_var( 'paged')がホームページ外で機能していない

二十一一テーマ...

ホームページ上で、私はうまくナビゲートリンクを通して正しく機能しているページ付けでちょうど「注目の」記事を表示するためにループをフィルターにかけました。 「フィルタなし」という別のページにすべてのカテゴリの投稿を表示しようとしています。この他のページで使用するとナビゲーションリンクが消えるのはなぜですか?

edit: 'paged'の値を '1'または '2'に変更すると、私が設定した値ではなく、設定した値に応じて 'paged'が機能するように思われる10の投稿が得られます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 /* Start the Loop */ ?>

                <?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' ); ?>
6
Adam

twentyeleven_content_nav()はメインのクエリオブジェクト$wp_queryを使います。 $wp_queryではなく$unfiltered_query変数を使用し、次にwp_reset_query()を使用して元の$wp_queryを復元する必要があります(これは$wp_the_queryにあります。直接触れないでください)。

元のクエリを復元するように注意している限り、問題はありません。

twentyeleven_content_nav()がオプションで計算に使用できるクエリオブジェクトを取ることを可能にするパッチをcoreに提出します。

6
Andrew Nacin

wP_Queryの引数はpagedですが、クエリvarはpageです。最後に 'd'は付きません。

'paged' =>  get_query_var( 'paged' )

する必要があります:

'paged' =>  get_query_var( 'page' )
6
Milo

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グローバルは、クエリが実行されるまで設定されていないようです。

1
Chip Bennett