カスタム投稿タイプにタクソノミーを設定し、一覧表示できるようにしたけど、taxonomy.phpをアップしても、1件も表示されない。管理画面ではちゃんと3件となっているのになぜ???
taxonomy.phpが原因?function.phpに何か影響を与える記述を加えてしまっていた?などなど一時間ほど迷走し、原因がわかりました。
exclude_from_searchが全ての原因
原因はカスタム投稿タイプを設定した部分にありました。
もともと以下のようにかいていました。
add_action( 'init', 'custom_posts');
function custom_posts() {
register_post_type( 'works',
array(
'labels' => array(
'name' => '制作事例',
'menu_name' => '事例の管理',
'singular_name' =>'制作事例',
'all_items' => '事例の一覧',
'add_new' => '新規事例登録',
'add_new_item' => '新規事例登録',
'enter_title_here' => 'タイトルを入力',
),
'public' => true,
'menu_position' =>5,
'supports' => array('title','editor'),
'has_archive' => true,
'capability_type' => 'post',
'show_ui' => true,
'show_in_menu' => true,
'hierarchical' => false,
'rewrite' => true,
'menu_icon' => 'dashicons-hammer',
'exclude_from_search' => true
)
);
register_taxonomy(
'type', // 分類名
'works', // 投稿タイプ名
array(
'label' => 'タイプ',
'hierarchical' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true
)
);
}
function.phpなら、「register_taxonomy」の部分が怪しいと思っていたけど、よくよく見ていたら「register_post_type」にある、
「’exclude_from_search’ => true」が原因でした。これかいてあると、taxonomy.phpで投稿をひっぱれません。
exclude_from_searchは、投稿タイプを検索に表示しなくする設定なので、おそらくtaxonomy.phpの出力に検索の機能を使っており、表示されなかったのだと思われます。