WordPressのカスタムタクソノミー設定方法について

WordPressのカスタムタクソノミーの使い方について紹介します。
例えばカスタム投稿タイプで「制作実績」という項目をつくって
その「制作実績」の中で通常のカテゴリーやタグのように分類をしたい場合に便利です。
「制作実績」の各投稿について
・Web
・ロゴデザイン
・グラフィックデザイン
等のタグづけをするとして、
URLのイメージは下記のような想定で話を進めていきます。
・制作実績の一覧
/works/
・制作実績の個別ページ
/works/xxx
・Webのタグを持つ投稿一覧
/works/tag/web
・ロゴデザインのタグを持つ投稿一覧
/works/tag/logo
・グラフィックのタグを持つ投稿一覧
/works/tag/graphic
それでは、カスタムタクソノミーの設定について記載していきます。
まず、この例で利用するカスタム投稿タイプ「制作実績」をfunctions.phpに記述します。
1 2 3 4 5 6 7 8 9 10 11 12 |
function create_post_type() { register_post_type( ‘works’, array( 'label' => '制作実績', 'public' => true, 'has_archive' => true, 'menu_position' =>5, 'supports' => array('title','editor','thumbnail') ) ); } add_action('init','create_post_type'); |
管理画面「投稿」の下に「制作実績」が表示されます。
続いてカスタムタクソノミーの記述をfunctions.phpに追記します。
register_taxonomy()関数を使います。
1 2 3 4 5 6 7 8 9 10 11 12 |
function create_taxonomy() { register_taxonomy( 'works_category',//作成するタクソノミーの名前 'works',//ひもづけるカスタム投稿タイプ名 array( 'label' => __( '制作実績の分類' ),//管理画面に表示されるラベル 'rewrite' => array( 'slug' => 'works/tag' ),//URL部分、省略するとタクソノミーの名前になる(works_category) 'hierarchical' => false //trueだとカテゴリー、falseだとタグ ) ); } add_action( 'init', 'create_taxonomy' ); |
すると、管理画面上に「制作実績の分類」の項目が表示されます。
通常投稿の「タグ」と同じ画面表示です。
カスタム投稿タイプ「制作実績」の投稿画面にも表示がされます。
あとは通常のタグと同じ使い方ですので説明は不要かと思いますが、
タグの追加に関しては
・「制作実績の分類」項目から事前にタグを作成する
・まだ追加していないタグを投稿画面から直接入力する
のどちらでも設定が可能ではありますが、
後者の場合はスラッグが指定できないので
日本語のタグ名を入力した場合はURLも日本語になってしまいます。
例)ロゴ → /works/tag/ロゴ
日本語URLは下記のようにパーセントエンコーディングされるので
私個人的にはあまり好きでないです。
/works/tag/%E3%83%AD%E3%82%B4
なので事前に名前とスラッグを指定してからタグを使いましょう。
もし正常に動作しない場合はパーマリンクの更新をしたか確認をしてみてください。
カスタムタクソノミーの使い方については以上となります。
カスタム投稿タイプとカスタムタクソノミーを理解していると
WordPress初心者からひとつレベルアップした感じがしますね。
是非ご活用ください!
執筆者

30代の既婚者子持ちです。現在は非エンジニア職で経理とか色々やってますがもし生まれ変わったら次はリアルガチのプログラマーになりたいなと思っています。
何度か転職してまして2008年ぐらいからIT業界です。PHP,MySQLでの開発を多少経験していますが本職の人にはかないません。
この記事を読んだ人はこんな記事も読んでいます
CHANGEUP!では、エンジニアの転職、
フリーランスの案件紹介を行なっています。
将来の働き方で迷っている方、転職をお考えの方、あなたのエンジニアとしての力を最大限発揮できる場所を提案させていただきます。