カスタム投稿タイプっていったいなんやねん?(コードはないよ)

カスタム投稿タイプってそもそも何なのか?投稿タイプってなんなのか?っていう話になって、なかなかうまく説明できなかったりしたので、ぶろぐってみることに。

投稿タイプ?

まずちょっとこの「カスタム」投稿タイプって言葉を忘れちゃって、WordPressの投稿タイプっていうものがなんなのかおさらいしてみましょう。

WordPressでつくったコンテンツ(記事)はカテゴリーだったり、日付だったり、著者だったりいろんな分類がされていますね。

「投稿タイプ」というのは そのように、コンテンツのタイプを分類してるって思ってください。ここで使っている「投稿」というのはブログ記事の投稿のことではなくてコンテンツ全体、というイメージです。

ちょっとごっちゃになりやすいので、ここでは便宜的に「投稿(コンテンツ)タイプ」と呼んでみましょう。
こんな風に記事をタイプ別に分類するイメージですね。

post_type_01

WordPressの投稿タイプ

ではWordPressでは、この「投稿(コンテンツ)タイプ」にはどんなものがあるのでしょうか。

01 投稿(コンテンツ)タイプ 「投稿 (post)」

まずはおなじみ、ブログ記事を書く「投稿」です。ここでいう「投稿」は「投稿(コンテンツ)タイプ」の中のひとつ「投稿」です。
ややこしいですね。この言葉のまぎらわしさが、ちょっと分かりにくくしてる原因のひとつじゃないでしょうか。

気を取り直して。。。

では、投稿(コンテンツ)タイプ 「投稿 (post)」にはどんな特徴があるでしょうか?

post_type_post

「投稿 (post)」はブログに代表されるように、日付(時系列)にそってコンテンツが積み重なっていくという大きな特徴を持っています。

またカテゴリーや、タグといった分類ができるのも特徴ですね。カテゴリーは階層化できる分類方式で、タグは階層構造を持ちません。

02 投稿(コンテンツ)タイプ 「固定ページ (page)」

「固定ページ (page)」も「投稿(コンテンツ)タイプ」の中のひとつです。

post_type_page

固定ページは基本的に時間の流れに左右されません。カテゴリーや、タグのような分類も持ちませんが、ページ同士に親子関係をつける事ができます。

03 投稿(コンテンツ)タイプ 「添付ファイル (attachment)」

添付ファイル?なんのこっちゃ?という感じかもしれませんが、これはメディアにアップロードされたファイルのことです。

通常「投稿 (post)」や「固定ページ (page)」の記事を書く時に同時にアップロードされて(添付されて)いるので、その記事の一部である、という感じがしますよね。

でも、ちょっと思い出してみてください。画像を挿入するときにリンク先を「添付ファイルのページ」としておくと、テンプレートが適用されて画像が表示されますよね。その時のURLって、

「http://webourgeon.net/wp-content/uploads/2013/12/hoge.png」

というような画像そのもののURLではなくって

「http://webourgeon.net/?attachment_id=1120」

というような記事のURLになります。

実際のメディアの編集画面をみても、パーマリンクの欄がありますね。

post_type_attachment

このようにメディアにアップロードされたファイルも、ひとつひとつがコンテンツ(記事)であり、「添付ファイル (attachment)」は投稿(コンテンツ)タイプ の中のひとつなのです。

04 投稿(コンテンツ)タイプ 「リビジョン (revision)」

リビジョンは記事の変更履歴を見ることができて、必要があれば過去の状態に戻ることができる、アレですね。下書きの状態も含みます。
WordPressではこれも投稿(コンテンツ)タイプとして扱っています。

post_type_revision

05 投稿(コンテンツ)タイプ 「ナビゲーションメニュー (nav_menu)」

投稿(コンテンツ)タイプ 「ナビゲーションメニュー (nav_menu)」??ナビゲーションがなんで投稿??と考えてしまうとわからなくなってしまいますが、これもひとつのコンテンツである、と考えてしまいましょう。

post_type_nav

ここまでのまとめ

WordPressのコンテンツはある特徴を持つ「投稿タイプ」によって分類されます。

WordPressの基本の投稿タイプは

  • 「投稿 (post)」
  • 「固定ページ (page)」
  • 「添付ファイル (attachment)」
  • 「リビジョン (revision)」
  • 「ナビゲーションメニュー (nav_menu)」

の5つです。

ここまで、なんとなくイメージしていただけたでしょうか?

では、もし

「固定ページのように親子関係を持っているのに、時系列でも並べたい」

などどこの中にあてはまらない特徴を持った「投稿タイプ」が必要になったらどうしたらいいでしょう?

そんなわがままをかなえてくれるのが、「カスタム投稿タイプ」。

なんですよ、奥さん。

カスタム投稿タイプ

やっと「カスタム投稿タイプ」という言葉が出てきましたね。

WordPressのデフォルトにはない「投稿タイプ」を作っちゃおう、ということだから「カスタム」なんです。

そして実際には、「カスタム投稿タイプ」という名前の「投稿タイプ」はありません。「カスタムにつくった投稿タイプ」にはそれぞれ名前がつきます。

post_type_custom

「(カスタム投稿タイプ)お知らせ」だったり、「(カスタム投稿タイプ)好きな食べ物」だったり、「(カスタム投稿タイプ)うぇぶるじょん」だったりするわけです。

そしてそれぞれが独立して、色々な特徴を持つことができます。もちろん投稿と同じ特徴をもってる「(カスタム投稿タイプ)スタッフブログ」みたいなものをつくってもいいわけです。

新しく作った投稿タイプは、デフォルトの投稿のように、カテゴリーやタグみたいな「分類」をもつこともできます。これが「カスタムタクソノミー」って言われてるものなんですが、ややこしくなるので、ここではこれ以上触れません。

では実際にどんな時にカスタム投稿タイプを作ればいいの?っていうことになると思いますが、どのような特徴を持つ「投稿タイプ」がほしいのか、ということを考えて決めればよいのです。そして、新しい「投稿タイプ」を作りその特徴を決めていくのが、register_post_type なわけなのです。

今日は「カスタム投稿っていったいなんやねん?」という考え方のお話なのでここまで。

うまく説明できたかな。。。

少しは頭のなかが整理されたよ、って思ってもらえたら嬉しいです。ではでは。

コメントをどうぞ♪