WordPressでおなじみの「投稿」や「固定ページ」。これらは「投稿タイプ」と呼ばれますが、新しい投稿タイプを追加することもできるようになっています。それが「カスタム投稿タイプ」です。
コードを書いて追加する場合は少々大変かもしれませんが、プラグインを利用すればコードを書かずに「カスタム投稿タイプ」機能を利用することができます。
## プラグインを使う方法
「Custom Post Type UI」を使うと、簡単に投稿タイプを追加することができます。
管理画面の「プラグイン」→「新規追加」から「Custom Post Type UI」を検索してインストール・有効化します。
メニューに「CPT UI」が追加されるので、その中の「投稿タイプの追加と編集」を開きます。
「基本設定」「追加ラベル」「設定」に分かれているので、まず「基本設定」を編集します。
基本設定では3項目を入力します。
1つめの欄がデータベースに保存されるカスタム投稿タイプ名です。半角の英小文字・数字・アンダーバーが利用可能で、最大20文字です。
2番目と3番目の欄は、管理画面などで使われる投稿タイプ名です。漢字・ひらがなもOKですのでわかりやすい名前で良いでしょう。英語の場合などで複数形と単数形で表示を変えられるように欄が分かれていますが、日本語の場合は両方同じ名前で大丈夫です。
最後に「投稿タイプの追加」ボタンを押して基本設定は終わりです。
投稿タイプが登録されると、左側のメニューに表示されます(緑色の枠の部分)。
また「CPT UI」の「登録済み」メニューを開くと、今追加した投稿タイプが表示されています。「○○○を編集」をクリックすれば編集画面に戻ります。
投稿タイプの編集画面に戻ると、残りは「追加ラベル」「設定」がありますが、これらは必要に応じて設定します。
「アーカイブあり」はTrueにすると、追加した投稿タイプの記事一覧ページがサイト側で表示できるようになります。
「階層」は記事が親子関係を持つかどうかが決まります。Falseでは「投稿」と同様になりますが、Trueにすると「固定ページ」のように親記事を指定できるようになります。
「メニューの位置」では管理画面のメニューでどの位置に表示するかを指定できます。数字の小さいほうが上、大きくなると下になります。
変更をしたら、一番下の「投稿タイプを保存」ボタンをクリックします。
## register_post_type関数を利用する方法
プラグインを使わずにカスタム投稿タイプを追加する場合は、initアクションからregister_post_type関数を呼び出します。
$post_type
データベースに保存される投稿タイプ名。半角の英小文字・数字・アンダーバーが利用可能で、最大20文字です。
$args
登録する投稿タイプの各種オプション。
register_post_typeを使う時は、$argsでいろいろな設定を渡してやる必要がありますが、上で紹介しているプラグイン「Custom Post Type UI」には、コード作成機能もあります。
「CPT UI」メニューから「Tools」を選ぶと、いくつかのタブがある画面が表示されるので「コードを取得」タブを開きます。その中に、新しく追加するカスタム投稿タイプのコードが表示されています。functions.phpにコピー&ペーストして、プラグインは停止させてください。
register_post_type( $post_type, $args );