LoginSignup
0
0

More than 5 years have passed since last update.

カスタムフィールドでもった分類から特定の値を選んだら投稿から排除する

Last updated at Posted at 2017-03-03

投稿から排除する

なんらかの理由でカスタムフィールドで分類した値を排除したい場合
['key' => 'news_type','value' => 'type-a',]

function theme_name_exclude_type_a( $query ) {
    //管理ページでは無効
    if ( is_admin() || ! $query->is_main_query() ) {
        return;
    }
    //トップページとカテゴリページのみ有効
    if ( $query->is_front_page() || $query->is_category() ) {
        //ACFなどのkeyにnews_typeと入力していてセレクトボックスなどの値でtype-aを選択したときに一覧にのせない場合
        $meta_query = array(
            array(
                'key' => 'news_type',
                'value' => 'type-a',
                //type-aだけ取得したい場合は'='に
                'compare' => '!='
            )
        );
        $query->set( 'meta_query', $meta_query );
        $query->set( 'posts_per_page', 10 );
    }
}
add_action( 'pre_get_posts', 'theme_name_exclude_type-a' );

それかテンプレートタグを作成するか

function theme_name_get_post_query( $args = array()){
    //カスタムフィールドnews_typeで分類したtype-aの排除
    $meta_query = array(
        array(
            'key' => 'news_type',
            'value' => 'type-a',
            //type-aだけ取得したい場合は'='に
            'compare' => '!='
        )
    );
    $defaults = array(
     'post_type' => 'post',
     'posts_per_page' => 5,
     'meta_query' => $meta_query
    );
    $args = wp_parse_args( $args, $defaults );
    return get_posts( $args );
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0