web creators特別号 |
スマートフォン・ソーシャルメディア・WordPress Web制作テクニック総特集 |
WordPress 10
カスタム投稿タイプとカスタム分類
企業が運営するWebサイトには多種多様なコンテンツが存在する。カスタム投稿タイプとカスタム分類は、投稿記事の管理やサイトの運用を柔軟に行うための必須機能だ。
解説/星野邦敏(株式会社コミュニティコム)
カスタム投稿タイプ・カスタム分類とは
カスタム投稿タイプとカスタム分類(カスタムタクソノミー)は、WordPressのバージョン3から搭載された比較的新しい機能だ。従来のWordPressでは、「投稿」と「固定ページ」からコンテンツを入力することしか想定されていなかった。カスタム投稿タイプを使うと、この2つ以外からもコンテンツを入力することができるようになる。また記事の分類についても、従来は「カテゴリー」と「タグ」の2通りの分類しか想定されていなかった。カスタム分類では、従来の分類方法にとらわれることなく、目的に応じて分類の種類を柔軟に増やすことができる。
「WordPress07 カテゴリーごとの記事一覧リストを作る」では、記事の項目分けの方法として、「投稿の際にカテゴリーのチェックから分ける実装」のほかに、「カスタム投稿タイプにより投稿場所自体を分ける実装」が存在することに触れた。このカスタム投稿タイプ、およびカスタム分類の使い方について見ていこう。
基本的な仕組み
企業のコーポレートサイトの場合、たとえば企業内にWeb担当者が複数人いて、それぞれ投稿する内容が異なることもあるだろう。このようなケースでは、「◯◯氏は『お知らせ』から記事を投稿する」というように、担当者ごとに投稿箇所を分けた方が運用しやすいはずだ。このように表示させたい情報の項目や 種類が複数あり、従来の投稿タイプや分類ではカバーしきれない場合は、カスタ ム投稿タイプやカスタム分類を使うとより柔軟に対応できる【01】。
わかりやすい例として、名古屋の株式会社ベクトルの石川栄和氏が作成した 「BizVektor」テーマを使って、実際のWebサイトでの表示例を確認してみよう【02】。このように管理画面からの投稿箇所を分けるとともに、お知らせとブログの表示箇所も分けている。
通常のWordPressにある「投稿」と「固定ページ」以外に投稿箇所を設置したい場合に「カスタム投稿タイプ」を、「カテゴリー」と「タグ」以外にも記事の分類を行いたい場合に「カスタム分類」を使うと便利だ。
【01】管理画面に、「お知らせ」というカスタム投稿タイプと、「お知らせカテゴリー」というカスタム分類を作った表示例。このような投稿箇所は、WordPressのバージョン3系以降、いくつでも増やすことが可能となっている。
【02】「BizVektor」テーマ(http://bizvektor.com/)。上のように投稿を分類して表示することができる。
カスタム投稿タイプの実装
それでは、具体的な実装方法について 解説していこう。まず、カスタム投稿タイプを管理画面に表示させるためには、WordPressテーマのfunctions.phpに「register_post_type」関数を記述する必要がある【03】。
register_post_typeの書式は【04】の形で、$post_typeの投稿タイプ名の指定は必須となっている(ここでは「'info'」としている)。
【03】「BizVektor」テーマにおけるfunctions.phpのコード例。
「'info'」のあとの部分でオプションの設定ができる。ここでは「'name'」部分で管理画面の項目に表示される名称を「お知らせ」にしたり、「'menu_position'」部分で管理画面の項目として表示される位置を「投稿」のすぐ下に来るように設定したり、「'supports'」部分でカスタム投稿タイプの投稿画面に表示させる入力フォームを選択するなどしている。
【04】どのようなパラメータがあるかは、「関数リファレンス/register post type – WordPress Codex 日本語版」(http://wpdocs.sourceforge.jp/関数リファレンス/register_post_type)に一覧がまとまっている。
カスタム分類の実装
カスタム分類を管理画面に表示させるためには、WordPressテーマのfunctions.phpに「register_taxonomy」関数を記述する必要がある【05】。register_taxonomyの書式は【06】の形で、$taxonomyの分類の名称と、$object_typeのオブジェクトタイプの指定は必須となっている。
その後のパラメータ(引数)の指定は、register_post_type関数と同様だ。
なお、functions.phpへの記述を面倒に感じるのであれば、前述のソースコードを書かなくても、「Custom Post Type UI」プラグインを利用して対応することもできる【07】。
【05】ここでは、分類の名称を「'info-cat'」として、オブジェクトタイプをさきほど作成したカスタム投稿タイプ「'info'」に紐付ける指定をしている。このオブジェクトタイプは、たとえば、「'post'」を指定すれば投稿にカスタム分類が紐付く、という形だ。
【06】どのようなパラメータがあるかは、「関数リファレンス/register taxonomy – WordPress Codex 日本語版」(http://wpdocs.sourceforge.jp/関数リファレンス/register_taxonomy)に一覧がまとまっている。
【07】「Custom Post Type UI」プラグイン。このプラグインをインストールして有効化すると、カスタム投稿タイプとカスタム分類の設定を管理画面から行うことができる。パラメータの設定も細かくできる。
テーマに記述
管理画面側への表示が終わったら、次は実際にWeb サイトに表示させるように、テーマに記述する。テーマへの記述は、通常と同じ関数を使う。具体的には、WP_Query関数のパラメータである'post_type'をカスタム投稿タイプに合わせるなどすればよい【08】。WordPressのバージョン3系以降、カスタム投稿タイプとカスタム分類は頻繁に使われる機能になってきているため、記事一覧を表示させるWordPressテンプレートタグには、カスタム投稿タイプやカスタム分類を扱うパラメータがきちんと用意されている。
【08】「'post_type' => 'info'」と指定することで、お知らせ一覧のタイトルと本文を最新10件、表示させることができる。
[目次に戻る]
【本記事について】
2012年7月28日発売のweb creators特別号「新世代Web制作テクニック総特集」から、毎週記事をピックアップしてご紹介! スマートフォンサイト特集ではデザインのルールとコーディングのポイント、ソーシャルメディア特集では従来のWebサイトとの違いと有効な活用方法、WordPress特集ではサイト構築に必要な機能と役立つプラグインなど、基本的な知識と必須テクニックを網羅した内容になっています。
※本記事はweb creators特別号『新世代Web制作テクニック総特集』からの転載です。この記事は誌面でも読むことができます。