WPのquery中のmeta_queryを、pre_get_postsフックでfilterする方法
例えば、ログインしていないユーザーのみの、works投稿タイプでkey=works_disclose, value=on のもののみ表示する
function your_customized_filter($query) { if(!is_user_logged_in() && $query->get('post_type') == 'works' ) { $meta_query = $query->get('meta_query'); if( empty( $meta_query ) ){ $meta_query = array(); } else $meta_query['relation'] = 'AND'; $meta_query[] = array( 'key' => 'works_disclose', 'value' => 'on' ); $query->set( 'meta_query', $meta_query ); return $query; } } add_filter('pre_get_posts', 'your_customized_filter');
フックを使うと、うっかりfilterし忘れが防止できるので、有効に使いたい。