カスタム投稿をアーカイブ(カテゴリー、タグ、インデクス)に表示する

カスタム投稿をカテゴリーなどのアーカイブに表示するには、テーマファイルを書き換える必要がある。
なにもしないと、2ページ目以降が404となって表示されない。

過去の記事は以下の通り。過去の記事は、タグアーカイブにカスタム投稿を表示させる方法。

function.phpに、以下の文を書き加える。文末に追記すれば良い。

[php]
/*
* Add custom post archive
*/

add_action( ‘pre_get_posts’, ‘category_any_posts’ );
function category_any_posts( $query ) {
if ( $query->is_category && $query->is_main_query() ) $query->set( ‘post_type’, ‘any’ );
}

add_action( ‘pre_get_posts’, ‘add_post_tag_archive’ );
function add_post_tag_archive( $wp_query ) {
if ($wp_query->is_main_query() && $wp_query->is_tag()) {
$wp_query->set( ‘post_type’, ‘any’ );
}
}

add_action( ‘pre_get_posts’, ‘home_all_posts_page’ );
function home_all_posts_page( $wp_query ) {
if ( $wp_query->is_main_query() && $wp_query->is_home() ) {
$wp_query->set( ‘post_type’, ‘any’ );
}
}
[/php]

上から、カテゴリーアーカイブ、タグアーカイブ、ホームのインデクスアーカイブを制御。
タイプは、anyとしているので、全てのカスタム投稿が表示される。

カスタム投稿によって、表示・非表示を使い分けする場合は、anyではなくカスタム投稿名を列記する。
[php]

add_action( ‘pre_get_posts’, ‘add_post_tag_archive’ );
function add_post_tag_archive( $wp_query ) {
if ($wp_query->is_main_query() && $wp_query->is_tag()) {
$wp_query->set( ‘post_type’, array(‘post’,’カスタム投稿タイプ’));
}
}

[/php]


【参考】
カスタム投稿をタグアーカイブに表示するには、以下の記事を参照。

「カスタム投稿をアーカイブ(カテゴリー、タグ、インデクス)に表示する」への1件のフィードバック

コメントは停止中です。