pre_get_postsフィルターを使ってカテゴリーアーカイブの表示条件をカスタマイズすると言う方法があります
// ※未検証
function customize_category_archive( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( $query->is_category() ) {
$meta_query = array(
array(
'key' => 'field-key',
'value' => 'field-value',
'compare' => '=',
)
);
$query->set( 'meta_query', $meta_query );
return;
}
}
add_action( 'pre_get_posts', 'customize_category_archive' );
関数リファレンス/WP_Query
参考:
http://notnil-creative.com/blog/archives/1996
Codexで日本語訳されてないですが、get_postとかWP_Queryとか(参考サイトではquery_postsを使ってますが)でmeta_queryというパラメータを使えばできます。
引数の部分で
'category_name' => 'categoryA', //特定のカテゴリースラッグを指定
'meta_query' => array( array( //カスタムフィールド指定
'key' => 'name', //カスタムフィールドのキー名
'value' => 'CF' //そのフィールドに入れられている値名
)),
という感じで入れて使います。
トピック投稿者
aki
(@akistar02)
お返事が遅れてしまいすいません。
一覧ページの作成方法、ありがとうございます。
しかし、たとえばタグクラウドみたいな感じで、
ジャンル
カスタムフィールドの値A カスタムフィールドの値B カスタムフィールドの値C
みたいなリストがあり、それぞれをクリックすると「カスタムフィールドの値A」という値を持っている投稿一覧が表示される、という使い方はできないでしょうか?
みたいなリストがあり、それぞれをクリックすると「カスタムフィールドの値A」という値を持っている投稿一覧が表示される、という使い方はできないでしょうか?
カスタムフィールドがどういう値をもっているか分からないのですが、それだったらカスタムタクソノミーにしたほうが、楽だったかもね。
トピック投稿者
aki
(@akistar02)
返信が遅れてしまい申しわけありません。
カスタムタクソノミーで解決できました!
すいません。
みなさんありがとうございました!