『Custom Post Type UI』でカスタム投稿を作ろう

wordpressでサイトを作ろうと思ったとき、「投稿」と「固定ページ」意外に、項目を追加したいときってありますよね。
このサイトの「制作実績」もカスタム投稿でつくっています。
ブログのように追加していけるので、とても便利です。

function.phpにいろいろコードを追加する方法もありますが、ボクは『Custom Post Type UI』といプラグインを使っています。
カスタム投稿用のカテゴリー(カスタムタクソノミー)も簡単に作れちゃうし、とっても簡単です。

『Custom Post Type UI』のインストールと設定

管理画面の「プラグイン」→「新規追加」の検索フォームに「Custom Post Type UI」と入力するか、ここからダウンロードしてインストールしてください。

『Custom Post Type UI』ダウンロード

インストールが終了すると、管理画面のサイドバーに「CPT UI」という項目が追加されているので、「Add/Edit Post Types(新規追加)」でカスタム投稿を作りましょう。

cpt_01

このサイトでは「Post Type Slug」には「works」、「Plural Label」には「制作実績」としました。

右側上部の『Labels』は管理画面の表示される項目です。
画面キャプチャして説明しようと思ったのですが、基本、左の日本語をコピペすればいいと思いますので割愛します。
ゴメンンサイ。
メニュー表示用の『Menu Name』だけは、わかりやすい名前にした方がいいと思います。

右側下部の『Settings』

ここも画面キャプチャすると縦に長くなってしまうので、テキストで説明します。

一般公開 「True」のままでOKです。
UI を表示 「True」のままでOKです。
Show in Nav Menus 「True」のままでOKです。
Has Archive 一覧表示用のテンプレートを「’カスタム投稿スラッグ’-archive.php」で作るなら「True」。
そうでなければ「False」にして固定ページのスラッグをカスタム投稿スラッグに合わせて、任意のテンプレートを設定します。
よくわからない場合は「False」のままにしておきましょう。
Exclude From Search  検索に含めるかどうかです。
利用タイプ  「post」のままでOKです。
階層  カスタム投稿の記事に階層構造をもたせるかどうかです。
よくわからない場合は「False」のままにしておきましょう。
リライト 「True」のままでOKです。
カスタムリライトスラッグ  カスタム投稿の一覧ページのURLはカスタム投稿スラッグが使われます。
「http://www.hoge.com/カスタム投稿スラッグ/記事名」
それが嫌な場合、ここに入力したものに変更されます。
※カスタム投稿名はよく考えて決めましょう。
With Front  「パーマリンク設定」で、「http://www.hoge.com/blog/%postname%/」のように「blog/」などを設定している場合、
「http://www.hoge.com/blog/カスタム投稿スラッグ/記事名」のようなURLになります。
これを回避するためにも、「False」に設定しておきましょう。
Falseにすると「http://www.hoge.com/カスタム投稿スラッグ/記事名」
メニューの位置  管理画面のメニューのどの位置に表示するかを決めます。5~100の間で決めます。
よくわからない場合は「5」にしましょう。
Show in Menu  「True」のままでOKです。
Menu Icon  管理画面のメニューのアイコンを変更できるようなのですが、よくわかりません。ゴメンナサイ
Custom “Supports”  カスタム投稿の記事の編集画面の項目の設定です。
「Title」「Editor」など必要最低限のものだけで十分です。
「None」にチェックを入れると何も書けなくなるので気をつけてください。
ビルトイン分類  どのカテゴリーやタグを使うかの設定です。
最初は普通の投稿に使われている「カテゴリー」「タグ」しかありません。
カスタムタクソノミーを作成すると表示されますので、あとで設定しましょう。


cpt_03

管理画面のサイドバーにカスタム投稿「制作実績」が追加されました。

カスタムタクソノミーを作りましょう

次に「Add/Edit Taxonomies」でカスタムタクソノミーを作っていきます。

cpt_02

ここでは「制作実績」にチェックを入れます。

右側上部の『Labels』は管理画面の表示される項目ですので、先ほどと同じようにコピペしてください。

カスタムタクソノミーの『Settings』

階層 カスタムタクソノミーに階層構造をもたせるかどうかです。
「Treu」だとカテゴリーのように、「False」だとタグのようになります。
UIを表示 「True」のままでOKです。
クエリーバージョン query_varキーの設定らしいです。
カスタムタクソノミーの一覧ページの URLに関係があるようです。
Trueの場合:「http://www.hoge.com/?タクソノミー名=ターム名」
Falseの場合:「http://www.hoge.com/?taxonomy=タクソノミー名&term=ターム名」
パーマリンクの設定にもよりますので、デフォルトの「True」のままにしておきましょう。
Custom Query Var String query_varのslugの設定らしいです。
カスタムタクソノミーの slugを書き換えたいときに使うようですが、よくわかりませんので、デフォルトの「True」のままにしておきましょう。
リライト クエリ-バージョンと似たような機能です。
Trueにすると「http://www.hoge.com/タクソノミー名/ターム名/」
Falseにすると「http://www.hoge.com/?タクソノミー名=ターム名」
Trueの時の方がwordpressっぽいので、「True」にしておきましょう。
カスタムリライトスラッグ 「http://www.hoge.com/タクソノミー名/ターム名/記事名」のタクソノミー名の部分を変更するときに使うと思われます。
※タクソノミー名はよく考えて決めましょう。
Rewrite With Front  カスタム投稿の設定の「With Front」と同じです。
「パーマリンク設定」で、「http://www.hoge.com/blog/%postname%/」のように「blog/」などを設定している場合、
「http://www.hoge.com/blog/タクソノミー名/ターム名/記事名」のようなURLになります。
これを回避するためにも、「False」に設定しておきましょう。
Falseにすると「http://www.hoge.com/タクソノミー名/ターム名/記事名」
Rewrite Hierarchical  階層を持った場合のURLの変更です。
例えば、タクソノミー「wokscat」に「website」の子カテゴリに「wordpress」があったとします。
Trueの場合「http://www.hoge.com/workscat/website/wordpress/」
Falseの場合「http://www.hoge.com/workscat/wordpress/」
「True」の方がわかりやすいと思うのですが、階層を深くしたくない場合などには、「False」にしましょう。
Show Admin Column  「True」のままでOKです。

 

「Add/Edit Post Types」でカスタム投稿の編集に戻って、ビルドイン分類の設定も忘れずに。

pct_04

「制作実績」に専用の「カテゴリ」と「タグ」が追加されました。

『Custom Post Type Permalinks』を使ってパーマリンクを調整しちゃおう!

カスタム投稿は実に便利なんですが、気にくわないことが…。

  1. カスタムタクソノミーを使うとカスタム投稿名がURLから無くなってしまう。
  2. カスタムタクソノミーを使うとそのスラッグがURLに表示されてしまうこと。

このサイトでいうと、カスタム投稿「works(制作実績)」の中にカスタムタクソノミー「works-cat」を作ってその中に「Website、DTP、Other」というカテゴリーがあります。
「Website」の「○○○」の個別ページにいくと、URLは「http://www.bossraku.com/works-cat/web/○○○」となってしまう。
「Works」の中の「Website」の中の「○○○」なんだから、「http://www.bossraku.com/works/web/○○○」になって欲しいんだよね。

そこで、『Custom Post Type Permalinks』というプラグインを見つけました。

『Custom Post Type Permalinks』ダウンロード

cpt_link

「パーマリンク設定」の画面がこんな感じになったので、必要な設定を行ってみると・・・、理想通りの「http://www.bossraku.com/works/web/○○○」になりました。
しかし、カテゴリごとの一覧ページを見てみると、「http://www.bossraku.com/works/works-cat/web/」にしかならない。
「works-cat」いらねぇ!!
アーカイブじゃなくて、固定ページにして各カテゴリーを子ページにすればっ!
いや待てよ、そうするとカテゴリーを増やすたびに固定ページも増やさないといけなくなるな…。
固定ページにすると、「表示設定」の件数に合わせてページ送りもできなくなるかもしれない。

迷ったあげく、一覧ページはあきらめました。
階層を深くしないためにも「カスタム分類のアーカイブのパーマリンクを変更する。」のチェックを外して、「http://www.bossraku.com/works-cat/web/」でいくことにしました。