サポート » 使い方全般 » カスタム投稿の一覧で、カスタムフィールドによるフィルタリングをする

  • 解決済 mametasu

    (@mametasu)


    カスタム投稿の一覧ページを表示する archive-XXX.php を使っています。

    一覧は、特定のカスタムフィールドの値を持った記事のみを表示しようと思い、下記のように query_posts で制御しました。

    query_posts( array('post_type' => XXX, 'meta_key' => 'type', 'meta_value' => 'entry') );

    が、このように書くとページングの表示が正常に動作しなくなってしまいました。
    (2ページに行っても、1ページ目と同じ記事が表示される)

    カスタム投稿の一覧で、カスタムフィールドによるフィルタリングを行いつつ、ページングも動作するような書き方はあるのでしょうか?
    ご存知の方がおりましたら教えていただきたいです。
    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター Takuro Hishikawa

    (@hissy)

    functions.phpに追記(未検証)

    if ( ! function_exists( 'my_customize_main_query' ) ):
    function my_customize_main_query($query) {
    	if ( is_admin() || ! $query->is_main_query() )
    		return;
    
    	if ( $query->is_post_type_archive('XXX') ) {
    		$query->set( 'meta_key', 'type' );
    		$query->set( 'meta_value', 'entry' );
    	}
    }
    endif;
    add_action( 'pre_get_posts', 'my_customize_main_query' );
    トピック投稿者 mametasu

    (@mametasu)

    functions.phpに追記で、問題なく動作しました!
    どうもありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿の一覧で、カスタムフィールドによるフィルタリングをする」には新たに返信することはできません。