[wordpress] カスタム投稿タイプって、どういうときに使うんだろう
wordpressには、カスタムなんちゃらってのがいくつかあります。ここでは、カスタム投稿タイプ(カスタムポストタイプ)というのはどういうときに使うのか、について書いていきたいと思います。
もとからある投稿タイプについて
投稿タイプをカスタムするということは、すでにいくつか投稿タイプがあるということですね。まずはそれについて知っておいたほうがいいでしょう。
もともとwordpressには大きく2つの投稿タイプが用意されています。一つがpost、もう一つがpageですね。wordpressの日本語版メニューでいえば、それぞれ「投稿」「固定ページ」と表示されています。他にも投稿タイプはありますが、よく使うこの2種類だけをここでは見ることにします。
post(投稿)は、時系列で記事をならべることを想定されています。また、タグやカテゴリーで記事を分類することも可能です。wordpressを普通のブログとして使うなら、postを使って更新していきます。
一方、page(固定ページ)は、独立した記事を書きたい場合に使います。例えば、ブログ管理人の紹介ページ、お問い合わせページ、イベントのお知らせページなどですね。これらは通常の時系列の記事と比べて独立色が強いですね。なので、こうしたページを作るときは、postではなくpageを使用します。
さらに、このpageについては、記事間で親子関係をつけることができるという特徴があります。また、子ページの順番を指定することもできます。これらの性質を使ってpageを組み合わせれば、ブログではない一般のサイトを作ることもできます。
新しい投稿タイプが欲しくなるのはどういうとき?
さて、wordpressには、もとからpostとpageという2つの主要な投稿タイプがあるという話をしました。しかし、サイトによってはこれらとは別の投稿タイプが欲しくなる場合があります。大きく分けると、別のpostが欲しくなったとき、別のpageが欲しくなったとき、そもそも既存の投稿タイプを使いたくないとき、があります。
別のpostが欲しくなったとき、というのは例えばこんな時です。wordpressネタを日々書いているサイトがあったとしましょう。日々の更新は、post(投稿)を使って書きます。ただ、このサイトの管理人がたまに勉強会を開いていて、その勉強会のお知らせを別管理にしたい、独立した時系列記事として管理したい、というニーズがあったとします。こういうときに、カスタム投稿タイプが使えます。
メインには日々の更新を載せ、サイドバーなどにお知らせ(カスタム投稿タイプで作ったもの)のタイトル一覧を載せます。そこから、お知らせの一覧や個別ページへのリンクに飛べるようにしておけば、wordpressの中に、日々の記事とお知らせ記事という2種類の時系列記事を含めることができます。
なお、この場合、「カテゴリー分け」をすればいいのではないか、という意見もあると思います。しかし、カテゴリー分けで管理すると、記事を時系列に並べたときに、日々の更新記事とお知らせ記事が入り混じってしまいます。これをわけるには、archiveのテンプレートをいじる必要があります。カスタム投稿タイプを使っても、archiveをいじっても、どちらでもできます(が、どちらもそれなりに大変です汗)。
次に、別のpageが欲しくなったとき、というのは、どういう場合でしょうか。例えばjQueryのリファレンスサイトを作っているサイトがあったとしましょう。page(固定ページ)を使って、ブログではない一般のサイトを作っているわけですね。こういったサイトを作っている場合、jQueryを使ったサンプルを表示したい、ということはよくあります。その時、page(投稿)はjQueryの解説ページとして使っているので、別のpageが欲しくなります。こういう時に、「カスタム投稿タイプ」を使って、jQueryのサンプルページを表示する、という運営ができます。
page(投稿)のテンプレートは、ヘッダーやサイドバー、フッターなど、通常のデザインのページにします。カスタム投稿タイプは、ほとんど何もないページにしておきます。そして、カスタム投稿タイプを使って書く記事には、jQueryのプログラムを書いて、その挙動を確認できるページとして使うわけですね。
既存の投稿タイプを使いたくないとき、というのは、入力フォームなどを新しくしたいときですね。ただ、カスタム投稿タイプを使ったとしても、まったく新しいことができるわけではありません。postかpageのどちらかの機能に近い投稿タイプが出来上がるだけです。なので、できれば既存の投稿タイプをそのまま使うのがいいと思います。postやpageに新しくフィールドも付け加えることができますからね。新しくフィールドを追加できない場合、もとのカスタム投稿タイプはいじりたくないという場合にのみ、カスタム投稿タイプを使うのがいいですね。
ちなみに、postやpageを使わずにカスタム投稿タイプを使った場合、カスタムフィールドによって新しい入力項目を作れるというメリットがあります(postやpageにも追加できますが)。一方、デメリットもあります。例えば、新しくアーカイブページを作らないといけなくなります。別管理にするんだから当然ですね。ループなどをいじる必要があります。また、タグやカテゴリーを使うこともできなくなります。代わりに、カスタムタクソノミーを使います。実質的にタグやカテゴリーと同じなのですが、分類方法は投稿タイプに紐づくのでpostで使っていたものを使いまわすことができません。
これらのデメリットを考えると、「デフォルトの投稿タイプを使いたくない」とかいう理由だけでカスタム投稿タイプを使うのはやめた方がいいです。テンプレート作成の手間が増えるし、何か問題が起こった時にカスタム投稿タイプを使っていると、参照できる情報が少ないです。なので、合理的な理由がない限り、カスタム投稿タイプを使うのはおススメしません。
まとめ
上で見てきたように、カスタム投稿タイプというのは、既存のpostやpageとは別に、一連の時系列ページや一連の固定ページを追加したい場合に使います。postやpageの改造でいける場合は、カスタム投稿タイプを使わないことをおススメします。