カスタム投稿タイプにタクソノミーを設定し、一覧表示できるようにしたけど、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の出力に検索の機能を使っており、表示されなかったのだと思われます。