taxonomy.phpであるはずの投稿が一覧表示されない問題の解決方法

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

 

 

投稿日:
カテゴリー: Wordpress

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*