WordPressでは投稿の分類管理の方法として、カテゴリーでの分類分け、タグでの分類分けなどが簡単に行えるようになっています。チェックを入れるだけで分類分けが自動で行われるため、投稿を管理する上でとても使いやすくできています。
その投稿に割り振られているカテゴリーを取得する関数などもあり表示面でも使いやすいものになっています。
カテゴリーを増やしたい場合はどうすればいいか?
洋服を例にしてみます。まず男性、女性という性別で分類するカテゴリーがあるとします。これは従来用意されているカテゴリーを使えばOKです。次にタグには商品タグっぽく各種ブランド名を付けます。
このときとある商品を選択した場合、その性別分類は「男性」でブランドは「AAA」という情報が取れます。さて、ここで服の種類を追加したいケースがあります。長袖、半袖などの種類です。これらの種類もカテゴリーとして登録してもいいのですが、性別と同列には扱わずあくまで種類として管理したいとします。
これは仮に、「性別: 」という表示をしたい場合、割り振られているカテゴリーをそのまま取得すると「性別: 男性 長袖」という風になってしまいよろしくありません。
本来の用途からすると
「性別: 男性」
「種類: 長袖」
としたい場面です。
カスタム分類 タクソノミー(taxonomy)
WordPressにはカスタム分類 タクソノミー(taxonomy)という機能があり、このタクソノミーを使えば新たにカテゴリーを増やすことができます。WordPressの管理画面上にも表示されるので、既存のカテゴリーと同様に扱うことができるようになります。プラグインもいろいろ出ていますが、今回はfunction.phpに追記する方法を紹介します。
register_taxonomy('weartype', 'post', array( 'labels' => array( 'name' => '種類' ), 'hierarchical' => true ));
上記を追記後、function.phpをサーバにUPします。すると管理画面の「投稿」欄に「種類」が追加されます。既存のカテゴリーと同様にスラッグを追加することが可能です。(例’ 名前:半袖 スラッグ:short)※上記は最小構成です
タクソノミーの分類ごとの一覧を取得する
投稿の一覧はhave_posts()で取得することができますが、対象がタクソノミーの場合、have_posts()取得前に以下のコードを追記します。
'post', // カスタム投稿名 'taxonomy' => 'weartype', // タクソノミー 'term' => 'short', // term (分類名前付け) 'posts_per_page' => -1 // ページ数(−1で全件) )); ?>
termの部分を切り替えることで、名前付けされた分類の一覧が取得できます。(ここでは半袖の一覧が取得できます。)
ページにひも付けされたタクソノミーの取得
投稿ページにひも付けされたタクソノミーの取得は次のコードで取得できます。
カスタム分類 タクソノミーは必要に応じてカテゴリーの種類を増やすことができますので、さまざまなケースのWebサイトに応用可能だと思います。ぜひご活用ください。