特定のページにカスタム投稿タイプを表示する[WordPress 3.0]

カスタム投稿タイプ

カスタム投稿タイプ(Custom Post Type)の導入と使い方 [WordPress 3.0] では、index.php にカスタム投稿タイプを表示してみました。では、特定のページにカスタム投稿タイプを表示するにはどうしたらよいのでしょうか?※誤解のないように、本記事での「ページ」は WordPress の投稿ではない「ページ(Pages)」を指しています。

ちょうど質問もあったので試してみました。

何もしていないページ

特定のページ”だけ”に表示する、というのが今回の目的なので、とりあえず、プロフィールのページに”のみ”表示してみることにします。上のスクリーンショットが何もしていない状態のプロフィールページです。

ページテンプレートの仕組みを理解する

ページの仕様では、ページのテンプレートは以下の順番で決まるようになっています(参考:ページテンプレート – Pages – WordPress Codex 日本語版)。

  1. 選択したカスタムWordPressページテンプレート
  2. page.php
  3. index.php

使用しているテーマにもよりますが、通常は 1 がなく、2 が使われている場合が多いでしょう。

例としてあげたスクリーンショットで使っているテーマ「Twenty Ten」においても、page.php が用意されており、プロフィールページもまた『デフォルトテンプレート』を使用していました。

特定のページにカスタム投稿タイプを表示するためには、カスタム投稿タイプを表示するカスタム WordPress ページテンプレートを作成し、特定のページに対して、そのカスタム WordPress ページテンプレートを適用してあげればよさそうです。

カスタム投稿タイプを表示するページテンプレートを作成する

では、カスタム投稿タイプを表示できるカスタム WordPress ページテンプレートを作成してみます。

カスタム WordPress ページテンプレートのルールとしては

というテンプレート名の宣言があれば、あとはどのように書いてもよいのですが、ここでは説明を簡単にするために、Twenty Ten テーマに用意されていたカスタムページテンプレート「onecolumn-page.php」を書き換えてみます。

このファイルをコピーして、custom-onecolumn-page.php という名前にして、テーマディレクトリに置きます。

テンプレート名を

のように書き換えて、

の下に、index.php の際にも書いた、

を挿入します。

※このコードを page.php に挿入すれば、すべてのページにカスタム投稿タイプが表示されます。

カスタムページテンプレートを特定のページに適用する

最後に特定のページ、であるところの「プロフィールページ」にさきほど作成した「Custom One column, no sidebar」テンプレートを適用します。

カスタム投稿タイプを表示するようにしたテンプレートに変更

ページ属性のところにあるテンプレートを「デフォルトテンプレート」から「Custom One column, no sidebar」へと変更するだけです。

特定のページにカスタム投稿タイプを表示できる

プロフィールの上にカスタム投稿タイプが表示されました。「Custom One column, no sidebar」を適用しているページはプロフィールページだけなので、このページのみにカスタム投稿タイプが表示されます。

意外と簡単でしたね。

特定のページにカスタム投稿タイプを表示する[WordPress 3.0]” への16件のコメント

  1. ピンバック: Tweets that mention 特定のページにカスタム投稿タイプを表示する[WordPress 3.0] | Odysseygate.com -- Topsy.com

  2. ピンバック: Wordpressのカスタム投稿タイプの一覧ページでページ送りを利用する | ちいさな創造

  3. @adomirari カスタム投稿タイプはテンプレート階層にないのでページテンプレートを使うといいと思います。@odyssey さんの記事が参考になると思います。http://www.odysseygate.com/archives/1727

  4. ピンバック: カスタム投稿タイプとカスタム分類を組み合わせる(その1) – The blog … « Ryo's todo list

  5. ピンバック: 特定のページにカスタム投稿タイプを表示する - wordpressのまとめ

  6. ピンバック: トップページにカスタム投稿タイプを設置したい | くりきんとん

フォームは コメントしてほしそうに こちらを見ている……!