カスタム投稿をカテゴリーなどのアーカイブに表示するには、テーマファイルを書き換える必要がある。
なにもしないと、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]
【参考】
カスタム投稿をタグアーカイブに表示するには、以下の記事を参照。
- [解決済み] タグがついたカスタム投稿をタグのアーカイブに表示させるには? – WordPress.org日本語版 フォーラム
funstion.phpには、index.phpにカスタム投稿のアーカイブを表示する部分は載せないことにした。
INDEX.PHPにカスタム投稿を表示しないようにした
http://www.consadeconsa.net/20150105-220632/