初めに
WordPressでは現在、二種類のテーマが存在します。
一つは、phpをフル活用してコードメインにテーマ開発するクラシックテーマで、旧来の方針です。
二つ目は、ブロックエディターを活用してFSE(フルサイト編集)までできるブロックテーマで、2020年ごろ誕生して以来主に開発が続けられています。
開発チームとしてはブロックテーマへの移行を推進しているようですが、業務などではまだまだクラシックテーマが主流です。というのも、初心者向けにWordPress側が色々やってくれるのでえカスタマイズしようとすると逆に難しいんですよね。。。
また、情報もそこまで出てこないので手探りで開発をする日々です。今回は、ブロックコメントでカテゴリを表示する際に少しつまづいたので共有します。
カスタムタクソノミーの登録
今回、記事のカテゴリーをページ上に表示しようとした際、カテゴリーだけ表示されませんでした。
そこで、色々やってみた結果、登録時のpublicをtrueにしたところ表示されました。
register_taxonomy( 'news_cat', 'news', [
'label' => 'ニュースカテゴリ',
'public' => true,
'show_ui' => true,
'show_in_rest' => true,
'hierarchical' => true,
'show_admin_column' => true,
'rewrite' => [ 'slug' => 'news-category' ],
] );
なぜそうなるのか?
これはあくまで推測なのでもし違うよって感じでしたらコメントお願いします!
public => falseの場合、
管理画面では使えるが、フロント側では「表に出さない」扱い
故に、
get_term_link()がWP_Errorを返す→post-termsが「リンク取得失敗=タームなし」と判断して出力をスキップ
こうすると、テンプレート側で
<!-- wp:post-terms {"term":"news_cat","className":"label"} /-->
として呼び出すことができる。