WordPressの便利な機能の1つが、カスタム投稿タイプです。これによって、1つのサイトの中で複数のタイプの投稿を管理することができます。
ただ、設定項目が少し多く、パーマリンクの設定なども少し複雑になってしまっています。
今回は、カスタム投稿タイプの使い方や、パーマリンクのカスタマイズ方法などを分かりやすくご紹介していきます。
INDEX
カスタム投稿タイプとは
カスタム投稿タイプとは、通常の「投稿」とは別に、投稿のタイプを作ることができる機能です。
例えば、コーポレートサイトであれば「ブログ」と「ニュース」を別々で管理したり、個人ブログであれば「ブログ」と「制作実績」など、異なる目的の投稿を分けて管理することができるようになります。
また、カスタム投稿タイプのみ異なるレイアウトで表示したり、別でアーカイブページを用意したりなど、カスタム投稿タイプを利用することによってWordPressでできることの幅が広がります。
カスタム投稿タイプを使うタイミング
カスタム投稿タイプはカテゴリーとの使い分けが少し難しく、どちらを使っても同じことを実現できたりするので、ここで少しカスタム投稿タイプを使うべきタイミングについてご説明しておきます。
投稿のタイプごとに記事一覧を表示したい場合
例えば、「ブログ」と「ニュース」のように、それぞれ記事一覧ページを用意して表示したいような場合は、カスタム投稿タイプを利用する方法がおすすめです。
カテゴリー機能を使ってもそれぞれ記事一覧ページを作ることはできますが、その場合「ブログ」や「ニュース」の中でカテゴリーを設定することができなくなってしまいます。
レイアウトやデザインを変えたい場合
例えば、「ブログ」と「制作事例」の記事ページのレイアウトやデザインを変更したいという場合は、カスタム投稿タイプを利用した方がいいでしょう。
カテゴリーを使ってレイアウトを変更することもできますが、記事一覧の場合と同様にカスタム投稿タイプを使った方が簡単な実装で済ませることができます。
カスタム投稿タイプを追加する方法
カスタム投稿タイプを追加する方法は、大きく分けて下記の2つの方法があります。
- functions.phpにコードを記述して追加する
- プラグインで追加する
functions.phpに記述を追加する方法については、上級者向けです。慎重に扱わなければならないファイルなので、誤って記述してしまうとサイト全体が表示されなくなってしますリスクがあります。
初心者の方がカスタム投稿タイプを追加する場合は、プラグインを使ってカスタム投稿タイプを追加する方法がおすすめです。
ここでは、プラグインを使ってカスタム投稿タイプを追加する方法についてご紹介していきます。
プラグインを使う
プラグインを使ってカスタム投稿タイプを追加する場合は、「Custom Post Type UI(CPT UI)」というプラグインがおすすめです。このプラグインを使うことで、簡単な設定でカスタム投稿タイプを追加することができます。
まずは、WordPressのプラグイン設定画面の「新規追加」から、プラグインのインストールを行ってください。
インストールして「有効化」すると、メニューに「CPT UI」という項目が追加されます。
クリックすると下記のような画面が表示されます。
それぞれの項目について、下記の情報を記述します。
- 投稿タイプスラッグ
- URLに使われるスラッグを設定する項目です。ダッシュ( – )は使えないので、代わりにアンダースコア( _ )を使用してください。
例)news - 複数形のラベル
- WordPress管理画面のメニューに表示される名称を設定します。日本語を設定することもできるので、分かりやすい名称を設定しておきましょう。
例)ニュース - 単数形のラベル
- あまり使われる所がないので、「複数形のラベル」と同じ名称を設定しておけば問題ありません。
例)ニュース
最後に、「投稿タイプを追加」をクリックすれば、カスタム投稿タイプの追加は完了です。
ここでは、「ニュース」というカスタム投稿タイプを追加してみました。左側のメニューに、作成したカスタム投稿タイプが追加されています。
メニューを開くと、通常の投稿と同じ様に記事一覧が表示されます。「新規追加」から、新しい投稿を作成することができます。
カスタム投稿タイプのパーマリンクを設定する
カスタム投稿タイプのパーマリンクは、デフォルトで「投稿名」が設定されているため、これを「投稿ID」を使ったURLに変更する方法をご説明します。
まずは、「Custom Post Type Permalinks」というプラグインをインストールします。
インストールが完了すると、「パーマリンク設定」の画面に、カスタム投稿タイプのパーマリンクを設定する画面が追加されます。
カスタム投稿タイプごとにパーマリンクを設定する項目があるので、投稿IDをパーマリンクにしたい場合は下記のように設定しておきます。
また、下記の2つの項目については、忘れずにチェックを入れておきましょう。
- カスタマイズされたカスタムタクソノミーのパーマリンクを使用する。
- カスタムタクソノミーのアーカイブに、post_typeクエリーを追加。
どちらもチェックを入れておくことで、通常の投稿と同じ様に、カスタム投稿タイプでもカスタムタクソノミーのURLが同じ様に扱われます。
余計なディレクトリを挟まないようにする
例えば、通常の投稿のパーマリンクが
のように設定されていた場合、newsというカスタム投稿タイプのURLは下記のようになってしまいます。
この「/archives」という文字列を取り除きたい場合は、「フロントでのリライト」をFalseに設定しましょう。
これで、下記のようなURLで表示できるようになります。
なるべくURLは短い方がいいので、「フロントでのリライト」はFalseに設定しておくといいでしょう。
カスタム投稿タイプの記事一覧を表示する
カスタム投稿タイプは、通常の投稿と同じ様に記事一覧を表示することができます。
記事一覧ページを表示したい場合は、「アーカイブあり」をTrueに設定しておきましょう。
これで、カスタム投稿タイプのパーマリンクが、
に設定されている場合は、
というURLで記事一覧を表示することができるようになります。
「アーカイブURLに使うスラッグ」という項目でURLを変更することもできますが、むしろ使い勝手が悪くなるので変更なしで大丈夫です。
カスタム投稿タイプのデザインをカスタマイズする
カスタム投稿のタイプごとに、異なるレイアウトやデザインを適用することができます。
カスタム投稿タイプには、「slug(スラッグ)」と呼ばれるものが設定されているので、予めデザインを編集したいカスタム投稿タイプのslugを確認しておきましょう。
投稿ページ
投稿ページのデザインを編集する場合は、single-{slug}.phpというファイルをsingle.phpと同じ階層に作成します。例えば、カスタム投稿タイプのスラッグが「news」の場合は、「single-news.php」という名前のファイルを作成します。
一般的なテーマであれば、元々「single.php」というファイルが用意されているので、それをコピー&ペーストして作成するといいでしょう。
後は、ファイルの中身のHTMLを書き換えて、style.cssにスタイルを記述すればデザインを編集することができます。
この時、PHPで記述されている部分については、あまり理解せずに書き換えないようにしましょう。正しくページが表示されなくなってしまう可能性があります。
アーカイブページ
アーカイブページのデザインを編集する場合は、archive-{slug}.phpというファイルをarchive.phpと同じ階層に作成します。
こちらも一般的なテーマであれば、元々「archive.php」というファイルが用意されているので、それをコピー&ペーストして作成すればOKです。
あとは、ファイルの中身を書き換えればアーカイブページの内容を編集することができます。
サイト内検索からカスタム投稿タイプを除外する方法
WordPressのサイト内検索は、デフォルトでカスタム投稿タイプも検索結果として表示するようになっています。用途によっては、検索結果にカスタム投稿タイプの投稿を表示したくない場合もあると思いますが、その場合は「検索から除外」をTrueに設定しておきましょう。
これで、検索結果にカスタム投稿タイプの投稿が表示されなくなります。