カスタム投稿タイプは、何かと便利ですが、テンプレートの作成等が必要になり、結構面倒な面もあります。
通常の投稿と同様に、日時アーカイブや、カテゴリアーカイブで表示してみたいと思います。
以下のフィルターでは、次のような処理を行っています。
1.カスタム投稿タイプの登録
codex_custom_init()で投稿タイプを登録し、フックします。
2. アーカイブで、カスタム投稿タイプを表示する設定をします
my_post_type_query() で 設定し、フックします。
3. カスタム投稿タイプで、カテゴリを使用できるように カスタム投稿タイプにカテゴリを登録します
my_add_categories_for_book()で登録し、フックします。
<?php add_action( 'init', 'my_custom_init' ); add_action( 'pre_get_posts', 'my_post_type_query', 1 ); add_action( 'init', 'my_add_categories_for_book' ); function my_post_type_query( $query ) { if ( is_admin() | | !$query->is_main_query() ) { return; } if ( is_archive() ) { $query->set( 'post_type', array( 'post', 'book' ) ); return; } } function my_custom_init() { $args= array( 'public'=> true, 'label' => 'Books' ); register_post_type( 'book', $args ); } function my_add_categories_for_book() { register_taxonomy_for_object_type( 'category', 'book' ); } ?>
以上で、カスタム投稿タイプbookを日付アーカイブ、カテゴリアーカイブで、通常の投稿とともに表示することが出来るようになります。
- https://ja.forums.wordpress.org/topic/141522?replies=14#post-195809(b:@source)