投稿から排除する
なんらかの理由でカスタムフィールドで分類した値を排除したい場合
['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 );
}