カスタム投稿タイプとは?
WordPressには、デフォルトの状態で「投稿」と「固定ページ」という二つのタイプの記事を作成できるようになっています。
「投稿」はブログ記事のように日時やカテゴリーなどの属性で分類できる記事を作成でき、「固定ページ」はそれらの属性で分類しない、単独で完結するページを作成する場合などに用います。
WordPressでホームページを構築する場合、下層ページなどは固定ページとして作成するのが一般的ですが、中には1ページで完結させるには困難だけど、日時(時系列)で管理するには向かないコンテンツというのもあります。
たとえば、レストランのメニューをホームページで紹介する場合について考えてみてください。
固定ページを利用してひとつのページにすべてのメニューを掲載する方法も考えられますが、そうした場合には一般的に表(table)や定義リスト(dl)などを用いてレイアウトすることが多いと思います。
Web制作の知識がある人が運営するのであれば特に問題ないかもしれませんが、特にそういった知識のない人が情報を更新するにはちょっと不便ですね。
そういったときに便利なのが、カスタム投稿タイプというわけです。
メニューひとつずつをカスタム投稿タイプのひとつの記事として作成し、それらを一覧表示するような設計にしておけば、まるでブログの記事を書くように手軽にメニューを追加・編集することができるようになります。
これならソースコードなど分からなくても、メニューの価格変更や新メニュー追加の際にスピーディーに情報を発信できるようになります。
僕個人の解釈なので正確な説明ではないかもしれませんが、カスタム投稿タイプがどういったときに使える機能なのかお分かり頂けたかと思います。
function.phpを編集する
それでは、実際にWordPressでカスタム投稿タイプを使う手順をご説明していきます。
ここでは、上で例としてあげたように、レストランのホームページなどに「メニュー」を一覧表示することを想定して進めていきたいと思います。
カスタム投稿タイプを利用できるようにするには、使用しているWordPressテーマのfunction.phpを編集する必要があります。
function.phpに、下記のようにコードを追加します。
- function.php
//カスタム投稿タイプ(メニュー)の追加 register_post_type( 'menu', array( 'label' => 'MENU', 'public' => true, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ), 'menu_position' => 5, 'has_archive' => true ) );
2行目の’menu’はカスタム投稿タイプの名前です。
ループ処理でカスタム投稿タイプの記事を抽出するときは、下記のような感じで記述します。
- PHP
<?php query_posts('post_type= menu&showposts=10'); ?>
上記は「menu」というカスタム投稿タイプの記事を10件表示させるときの記述です。
ついでですが、「showposts=-1」とすれば全件表示されます。
4行目のlabelのところ’MENU’は、管理画面のサイドバーに表示される名前です。
ホームページ上で表示されるものではないので、分かりやすい名前を付けておけばよいでしょう。
以上の手順でWordPressでカスタム投稿タイプを利用できるようになります。