以前に、カスタム投稿タイプのパーマリンクの設定方法を解説しましたが、今回はプラグインを使用して簡単に設定する方法を紹介します。
使用するのは、「Custom Post Type Permalinks」というプラグインです。
WordPress › Custom Post Type Permalinks « WordPress Plugins
カスタム投稿タイプのパーマリンク設定はかなり大変
以前の記事(記事: カスタム投稿タイプのパーマリンク)で、カスタム投稿タイプのパーマリンクを、テーマファイル内で設定する方法を説明しました。
そちらの記事の方法では、プラグインに依存しないので、プラグインの設定やアップデート等に煩わされる事が無いというメリットがあります。
しかし、簡単なパーマリンク構造なら良いのですが、カスタム投稿タイプに更にタクソノミーなどが加わると、一気にコーディングが複雑な事に! ここまでを自力でコーディングしていると、かなり途方もない作業になってしまいます。
そこで今回は、カスタム投稿タイプ自体の設定は、プラグイン等を使わない、テーマファイル内での設定をしつつ、パーマリンクについてはプラグインを活用して設定します。
必要最低限の機能だからこそ頼れるプラグイン
Custom Post Type Permalinks
今回紹介するCustom Post Type Permalinksプラグインは、管理画面のパーマリンク設定に、カスタム投稿タイプ用の設定フィールドを追加してくれます。
必要最低限の機能なので、予期しないトラブルを引き起こす心配が無いです。
※機能はシンプルでも、様々なケースにできるように、内部では相当細かい処理をしていて、凄いです!
また、ダウンロード数も多く、最近も頻繁にアップデートされているプラグインなので安心です(2015年6月現在)。
設定の手順
カスタム投稿タイプとタクソノミーの設定
まずはカスタム投稿タイプとタクソノミーを設定します。
カスタム投稿タイプを設定するプラグインも数多くありますが、こちらはプラグインを使わなくても簡単にできますので、今回はテーマのfunctions.phpにコードを書く形で設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
add_action( 'init', 'my_register_taxonomy' ); function my_register_taxonomy() { register_post_type( 'news', array( 'label' => 'ニュース', 'public' => true, 'has_archive' => true, 'rewrite' => array( 'with_front' => false ), 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions' ), 'taxonomies' => array( 'genre' ), ) ); register_taxonomy( 'genre', 'news', array( 'hierarchical' => true, 'label' => 'ジャンル', 'public' => true, 'query_var' => true, 'singular_label' => 'ジャンル', ) ); } |
カスタム投稿タイプの設定については、記事: カスタム投稿タイプの設定をご覧ください。
ここでのキモは、10行目の
1 |
'rewrite' => array( 'with_front' => false ) |
です。
この設定が有るか無いかによって、設定できるパーマリンクが変わってきます。
例えば、この設定が無い場合、
となるのが、この設定を入れる事によって、
というようにできるという事です。
詳しくは、記事: カスタム投稿タイプのパーマリンクも参照してください。
パーマリンクの設定
続いて、パーマリンクを設定します。
まず、先ほどから散々名前の挙がっているCustom Post Type Permalinksプラグインをインストールしてください。
そして、管理画面の設定>パーマリンク設定を開きます。
設定項目は3つだけです。
一つ目は、一般的なパーマリンク設定と似たような設定です。
投稿IDベースのパーマリンクにしたい場合、以上のような設定にしましょう。
(末尾のスラッシュの有無は、基本のパーマリンク設定に揃える形が良いと思います。)
二つ目は、タクソノミー(カスタム分類)の設定です。
ここが、このプラグインの最大のメリットです。
細かく説明すると長くなってしまいますが、こちらにチェックを入れるだけで、カスタム投稿のタクソノミーを、一般の投稿のカテゴリーと同じようなパーマリンク構造にできます。
三つ目は、タクソノミーのアーカイブを投稿タイプで絞り込むか、という設定です。
例えば、チェックが入ってない場合と入れた場合は、以下のような違いがあります。
http://my-site.com/news/genre/world/・チェック無し
genre=world
・チェック有り
genre=world&post_type=news
通常はチェック有りにしておいた方が、自然な挙動になるかと思います。
以上で設定は完了です。
こんな素晴らしいプラグインを公開してくださっている開発者様に感謝です。
TRACKBACKS