get_post_meta($post->ID, "project_cat", true)
(投稿IDを返す)が自分の指定した値と等しい投稿のみが表示されるように投稿をフィルタしたい。
これを行う方法は?
WP_Query
オブジェクトはpost meta引数を受け入れます。一般的に言って、あなたは次のことをしたいです。
$my_query = new WP_Query(
array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'project_cat',
'value' => 'my-value',
)
),
// Other query properties
)
);
'my-value'はあなたの '指定された値'です。
使用例:
add_action( 'pre_get_posts' , 'my_pre_get_posts' );
function my_pre_get_posts( $query ) {
// Check this is main query and other conditionals as needed
if( $query->is_main_query() ) {
$query->set(
'meta_query',
array(
array(
'key' => 'project_cat',
'value' => 'my-value'
)
)
);
}
}
WP_Query 、 pre_get_posts を参照してください。すべての条件はあなたに利用可能です。現在これはすべての主要なクエリに対して実行されます - おそらくあなたはそれを望まないでしょう。
あるいは、テンプレート内の特定のインスタンスに対してのみクエリを変更するために query_posts
(もっと単純ではあるがはるかに効率的でない方法)を使用することができます。
あなたはメタ値に基づいて投稿をフィルタリングし、cmsページに投稿を表示することができます。
'meta_query' => array(
array(
'key' => 'front_page',
'value' => 'yes',
'compare' => 'LIKE',
))
ステップバイステップの説明についてはチュートリアルを参照してください
http://www.pearlbells.co.uk/filter-posts-custom-fields-wp_query/ /