中級者向け 有用

【有用】WordPressカスタム投稿タイプの作成方法

WordPressの知識
この記事は約6分で読めます。

文中の説明画像をクリックすると拡大します。

Pocket

カスタム投稿タイプとは

カスタム投稿タイプとは、WordPressに独自の投稿タイプを追加できる機能です。

WordPressには標準で、記事を時系列で管理できる「投稿」が用意されていますが、カスタム投稿タイプを利用することで、「投稿」と同じような形式で記事を管理できる場所をいくつでも作ることができます。

ここでは、どんな場面でカスタム投稿タイプを利用するのか、そしてカスタム投稿タイプを追加する方法についてご紹介していきます。

カスタム投稿タイプはどんなときに使う?

WordPressを利用してWebサイトを構築する場合、サイト内にブログやサービス案内、お知らせなどさまざまなコンテンツを用意します。

その場合、通常の「投稿」はブログとして利用し、その他のページは「固定ページ」などで作成するのが一般的だと思います。

しかし、例えば「お知らせ」というコンテンツは、Webサイトを運営していく中でどんどんページが増えていきますし、また年や月などの時系列で管理できた方が都合がいいかもしれません。

そんなときに、「お知らせ(あくまでも例です)」というカスタム投稿タイプを作成することで、通常の「投稿」と同じ要領で記事を管理することができるようになります。

カスタム投稿タイプの作り方

カスタム投稿タイプを作成するには、以下の2つの方法があります。

  1. WordPressのプラグインを利用する方法
  2. WordPressテーマ内にあるfunctions.phpというファイルを編集する方法

それでは、順番に手順を見ていきましょう。

なお、ここでは例として、「お知らせ(スラッグ:news)」というカスタム投稿タイプを作成する場合をご紹介します。

プラグイン『Custom Post Type UI』を使う

カスタム投稿タイプを作成するWordPressプラグインはいろいろありますが、『Custom Post Type UI』というプラグインが使いやすくておすすめです。

まず、WordPressのダッシュボードから、「プラグイン」→「新規追加」と進み、右上の検索窓に「Custom Post Type UI」を入力してプラグインを探します。

『Custom Post Type UI』が見つかったら、インストール&有効化しておきましょう。

『Custom Post Type UI』をインストールできたら、WordPress管理画面に新しく「CPT UI」という項目が表示されます。

そこから「投稿タイプの追加と編集」をクリックすると、カスタム投稿タイプを作成する画面へ進めます。

表示されたページにある「基本設定」に以下のように入力すれば、カスタム投稿タイプ「お知らせ」を作成することができます。

  • 投稿タイプスラッグ:news
  • 複数形のラベル:お知らせ
  • 単数形のラベル:お知らせ


※「複数系のラベル」「単数形のラベル」を日本語にする場合は、同じ内容を入力しておけば大丈夫です。

次に、一番下にある「設定」で、さらに細かい設定をしていきましょう。

カスタム投稿タイプの一覧ページ(アーカイブページ)がほしい場合には、「アーカイブあり」を「True」にします。

また、サイト内検索をされた際に、カスタム投稿タイプの記事を検索結果に含めたくない場合には「検索から除外」を「True」にしておきます。

設定が完了したら、忘れずに「投稿タイプを追加」ボタンをクリックしましょう。

補足知識です

「アーカイブあり」での設定は、そのカスタム投稿タイプのアーカイブページを生成するか否かを指定するものです。

そのため、「True」に設定するとアーカイブページが生成され、「False」の場合はアーカイブページが生成されません(たとえURLを直接入力しても404エラーになります)。

テーマ内に、archive-news.phpというアーカイブページを表示するためのファイルを用意していても、「アーカイブあり」の設定が「False」の場合は、ページが生成されません

「True」の場合は、アーカイブページが生成され、なおかつその内容は、archive-news.phpのファイルの内容によって決まります。

極端な例ですが、「アーカイブページあり:True」に設定し、archive-news.phpには「カスタム投稿タイプ:news」のループではなく、通常の「投稿」のループを記述していれば、NEWSアーカイブページには「投稿」の一覧が表示されます。

テーマのfunctions.phpから追加する

カスタム投稿タイプは、プラグインを使わずにWordPressテーマのfunctions.phpから追加することもできます

functions.phpの編集は、WordPress管理画面上からでも行うことができますが、ちょっとしたミスで思わぬトラブルになるおそれがあります。

そのため、まずはFTPクライアントソフトを使ってfunctions.phpをローカル(自分のパソコン)にダウンロードしましょう。

ローカルにファイルをダウンロードしてから編集することについては、こちらをご覧ください。

【危険】テーマファイル(テンプレートファイル)の編集はローカルファイルで行なう
WordPressのテーマファイルの編集は管理画面で編集するのではなく、オフラインにてテキストエディタで編集して、FTPでアップロードしましょう。管理画面の直接編集でミスしたまま「ファイルを更新」すると、元に戻らない危険を孕んでいます。

FTPって何だっけ?という方は、以下のページをご覧ください。

【基本】FTPって何のこと?
FTPとは、File Transfer Protocolの略で、クライアントの間でファイルを送受信する通信の手続きのことを言います。FTPを使う事で、自分のパソコンにあるファイルをWebサーバーに転送できます。

FTPでサーバーに接続したら、「wp-content」というフォルダを探します。

見つけたら、「wp-content」→「themes」と進み、使用しているテーマのフォルダに入ります。

その中からfunctions.phpを見つけて、ローカルにダウンロードします。

ダウンロードできたらfunctions.phpを開き、ソースコードの一番最後に、以下をコピー&ペーストします。

【functions.php】

add_action('init', 'custom_post_news');

function custom_post_news() {
    register_post_type('news', array(
        'label' => 'お知らせ',
        'menu_position' => 5,
        'public' => true,
        'supports' => array(
            'title', 
            'editor',
            'author',
            'thumbnail',
            'excerpt',
            'trackbacks',
            'custom-fields',
            'comments'
        )
    )); 
}

これで、「お知らせ」というカスタム投稿タイプを追加することができました。

 

まとめ

  • カスタム投稿タイプとは、「投稿」「固定ページ」の他に独自の投稿タイプを作成できる機能。
  • カスタム投稿タイプは、記事(ページ)がどんどん増えていくコンテンツを作成するときに最適。
  • カスタム投稿タイプを追加するには、プラグインを使う方法とfunctions.phpを編集する方法がある。
Pocket