質問

によれば カスタムループを使用したページネーション. 。ディスプレイフラッシュゲームにカスタムループを使用しています。 1つのカテゴリ(mydomain/category/categoryname)からの投稿でページにページネーションを作成するには:

add_action( 'pre_get_posts', 'wpse5477_pre_get_posts' );
function wpse5477_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        $wp_query->set( 'post_type', 'game' );
        $wp_query->set( 'posts_per_page', 9 );
    }
}

サイトのメインページにセクションがあり、各カテゴリから3つのゲームを表示しました。しかし、上記のコードによると、この数値がすでに$ wp-queryで決定されているため、配列( 'post_per_page'、3)またはこのようなSMTHで決定しても、3つのゲームしか表示できません。どうすれば1石で2羽の鳥を殺すことができますか?ありがとう。

役に立ちましたか?

解決

変数の存在を確認できるので、上書きしないでください。

add_action( 'pre_get_posts', 'wpse7262_pre_get_posts' );
function wpse7262_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        if ( ! array_key_exists( 'post_type', $wp_query->query_vars ) ) {
            $wp_query->set( 'post_type', 'game' );
        }
        if ( ! array_key_exists( 'posts_per_page', $wp_query->query_vars ) ) {
            $wp_query->set( 'posts_per_page', 9 );
        }
    }
}
ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top