@lisa0000 さん
そこまで、難しく考える必要はないと思いますよ。
投稿(post)にある”カテゴリー = タクソノミー”で、カテゴリーにお知らせというのを追加した場合、”お知らせ = ターム”という呼び方になります。WordPressの日本語マニュアル的にいうと、”タクソノミー = カスタム分類”になります。ですので、カスタム投稿タイプにカスタム分類を追加したとしても、使用方法は投稿(post)にあるカテゴリーと全く同じです。
ただ、カテゴリーはビルドイン(予め組み込まれた)のカスタム分類なので、get_category()をはじめとしたAPIが予め用意されていますが、自身でカスタム分類を新たに追加した場合は、get_term()関数やget_terms()関数、get_taxonomy()関数やget_taxonomies()関数を使って自前で取得する必要があるという点です。
試しに、get_category()関数の中身をみてみましょう。
function get_category( $category, $output = OBJECT, $filter = 'raw' ) {
$category = get_term( $category, 'category', $output, $filter );
if ( is_wp_error( $category ) )
return $category;
_make_cat_compat( $category );
return $category;
}
これは、get_category()関数のソースコードです。記述されているファイルは、wp-includes/category.phpの90行目辺りです。内部をみてみると、get_term()関数が使用されていて、get_term()関数の第二引数に”category”と直接書かれているのが確認できます。このことから、投稿(post)にあるカテゴリーはcategoryというカスタム分類であるというのが分かります。
では、投稿(post)にあるカテゴリー(categoryというカスタム分類)がどのようにWordPressのコアで追加されているのかというと、カスタム分類を追加する時に使用する関数と同じregister_taxonomy()関数で追加されています。「うっそだー笑」と思うかもしれませんので、先程と同じくWordPressのコアのソースコードをみてみましょう。
function create_initial_taxonomies() {
//〜中略〜
register_taxonomy( 'category', 'post', array(
'hierarchical' => true,
'query_var' => 'category_name',
'rewrite' => $rewrite['category'],
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'_builtin' => true,
) );
//〜中略〜
}
これが投稿(post)にあるカテゴリーを追加している部分です。create_initial_taxonomies()関数は、wp-includes/taxonnomy.phpの24行目あたりに記述されています。ちなみに、initアクションにフックする形で使用されています(他にも使用されている箇所はありますが、今回は気にしないでください)。
ここまで、小難しい説明をしてみましたが、実際に追加して動かしてみるのが1番理解が早いと思います。結論として、@lisa0000 さんがやりたいことは、カスタム投稿タイプにカスタム分類を追加すれば可能です。例えば、レシピという投稿タイプに、ジャンルというカスタム分類を追加して、ジャンルに中華を追加して、レシピの記事を中華に紐付ければ、中華の記事一覧を表示できるようになります。
どのテーマファイルが使われるかは、WordPress Codexのテンプレート階層をご覧ください。面倒臭い!という場合は、archive.phpがあれば大丈夫です笑
なにか、詳しい情報が掲載されているページなど、参考になるものが御座いましたら教えて頂けないでしょうか。
公式のドキュメント”WordPress Codex”を読むのが1番正確だと思います。その上で他の人のブログを参考にするのがいいのではないかと思います。
カスタム分類 – WordPress Codex 日本語版
https://goo.gl/F35nB5
※注意事項: 上記の説明の中で、WordPressのコアファイルのソースコードを引用していますが、コアファイルは絶対に改変したりしないようにしてください。