WordPressへの道

WordPressを始めたばかり。備忘録として書き込みます。

【Wordpress】タグの階層化をしたいなら☆カスタムタクソノミーを使おう!

これまでタグすら使っていなかった私。
友人に絶対使ったほうが良いと勧められ、記事数も少ないので一気にタグを設定しましたよ。
私のサイトは友人からの情報で成り立っています☆

さて、私はこれで満足なのですが、友人はもっと高度な技が必要でして・・・
彼女からの課題を解決するにはタグを階層化しないとできない!!
基本的にタグには階層がないし、IDはデータベース作成時に割り当てられるため変更するのは非常に危険。
色々調べたところ、「カスタムタクソノミー」という分類を使えば解決できそうです。

 

プラグイン☆Custom Post Type UI

このプラグインを使うと、カスタム投稿とカスタムタクソノミーが設定できます。 今回はとりあえずタクソノミーだけ設定します。

プラグインをインストールするとダッシュボードに「CPT UI」という項目が追加されます。
f:id:akonomunon:20150729103215j:plainこの中から「Add/Edit Taxonomies」をクリックします。

f:id:akonomunon:20150729103448j:plain

「Add New Taxonomy」タブでカスタムタクソノミーを設定します。
■Taxonomy Slug:必須項目です。半角英字入力。
■Plural Label:投稿画面で表示されるラベル。私は分かりやすく日本語で(笑)
■単数形のラベル:日本語では不要なので空欄のままでOK
■利用する投稿タイプ:必須項目です。カスタム投稿を設定したらここに追加されます。私は設定していないので「投稿」にチェック。

このまま追加ボタンを押したいところですが、右側の下のほうに「階層」の項目があるのでスクロール。
階層を「True」にしたら、上に戻って「Add Taxonomy」ボタンをクリックしたら設定完了です!

f:id:akonomunon:20150729104051j:plain

カスタムタクソノミーを使って投稿しよう!

投稿画面の右下、カテゴリーやタグの設定の下に設定したカスタムタクソノミーの名前(ラベル)が表示されます。
「+Add new」をクリックすると入力フォームが表示されます。
-Parent-で親タクソノミーを指定すると親子階層ができます。

f:id:akonomunon:20150729110054j:plain

さて、次はこのタクソノミーの表示です。

<?php echo get_the_term_list($post->ID, タクソノミーのslug, 'タクソノミーの前に表示する文字', ' タクソノミーの区切り文字', 'タクソノミーの後ろに表示する文字'); ?>

これを使って「DELL>Inspiron」と表示させるには・・・

<?php echo get_the_term_list($post->ID, maker, '', ' > '); ?>

これで無事に表示できました。
と思ったのですが、これはその記事に設定されているタクソノミーを順番に取得・表示しているようで、親子関係は無視されている模様。
次回、親>子表示できるように考えたいと思います!