macoblog

「ゲーム × プログラミング」で生きていく

MMORPGに人生捧げてみ?

カスタム投稿タイプを追加する方法【コピペOK+プラグイン不要】

WordPress プログラミング

ワードプレス初心者

ワードプレス初心者
「ワードプレスでカスタム投稿タイプを追加したい、プラグインを使わずに簡単に実装したいんだけど何か良さげな方法ないかな?」

ワードプレスにあるデフォルトの「投稿」だけだと足りない時って多いと思います、そんな時に活躍するのが「カスタム投稿」です、今回はこの「カスタム投稿」を追加する方法について解説してみたいと思います。

目次【本記事の内容】

スポンサードサーチ


「カスタム投稿」について【基礎知識】

「カスタム投稿」とは、ワードプレスにデフォルトで用意されている「投稿(post)」とは別に用意した投稿タイプのこと、下記のスクショを見てもらえれば分かりやすいと思います。

デフォルトの「投稿」と追加したカスタム投稿の説明

一番上の「投稿」のすぐ下にある「お知らせ」「カスタム」「ブログ」がカスタム投稿にあたります、定番なもので言えば「お知らせ」「新着情報」ですかね、普通のブログ記事(投稿)とは別の役割で記事を作成したい時に別々で管理したい時によく使います。

ってこで今回はカスタム投稿タイプ「お知らせ」を実装し、コードを公開しながら解説したいと思います。

カスタム投稿タイプを作成する方法【コピペ+編集】

カスタム投稿タイプの追加にプラグインは不要

「カスタム投稿」を追加する類のプラグインは使いません、理由は2つあります。

  • プラグインを使うレベルの話じゃない
    →カスタム投稿の追加はカスタマイズの中でも簡単な部類であり、コピペと軽い編集だけで実装出来ます。
  • プラグインに頼りすぎのはダメ
    →プラグインに頼りすぎると更新時のメンテナンスも大変になりますし、サイトも重くなったりで良いことなしです、自力で実装できるものは自分でやってしまいましょう。

ということで、今回はプラグインを使わずカスタム投稿タイプを追加してみたいと思います、実装にあたって子テーマを用意することをオススメします、子テーマについてはWordPress初心者は必ず覚えておきたい【子テーマの作り方】をどうぞ。

カスタム投稿タイプを追加する方法【コピペ+編集】

使用するファイル

  • functions.php

使用するファイルは一つだけです、親テーマ内にあるものでもいいですが、基本的には子テーマ内にある[functions.php]を編集するようにしましょう。

実装までの手順

  • コードをコピペする
  • コードの一部を編集する

コードを[functions.php]にコピペして一部を編集するだけですね、難しいことは一切ないかと思います。

ということで、「カスタム投稿タイプ追加のテンプレート」を用意しました、何も考えずに下記コードを[functions.php]の一番下にコピペしましょう。

カスタム投稿タイプ追加のテンプレート

// カスタム投稿タイプを追加する
function ここに関数名() {
  $Supports = [
    'title',
    'editor',
    'thumbnail',
  ];
  register_post_type( 'ここに投稿タイプ',
    array(
      'label' => 'ここに表示名',
      'labels' => array(
      'all_items' => 'ここに一覧表示名'
      ),
      'public' => true,
      'has_archive' => true,
      'menu_position' => 5,
      'supports' => $Supports
    )
  );
}
add_action( 'init', 'ここに関数名' );

それぞれ簡単に解説します。

  • 「ここに関数名」の部分に関数名を記述してください、わかりやすいのが理想です。注:各行必ず合わせること。(2行目と21行目)
  • 「ここに投稿タイプ」の部分に投稿タイプを記述してください。ちなみにデフォルトである「投稿」は「post」です。(8行目)
  • 「ここに表示名」の部分にサイドメニューで表示する名称を記述してください。(10行目)
  • 「ここに一覧表示名」の部分にサイドメニューで表示する一覧名称を記述してください。(12行目)

以上をふまえてカスタム投稿タイプ「お知らせ」を実装してみます、下記になります。

カスタム投稿タイプ「お知らせ」の実装コード

// カスタム投稿タイプ「お知らせ」を追加する
function create_post_type_news() {
  $Supports = [
    'title',
    'editor',
    'thumbnail',
  ];
  register_post_type( 'news',
    array(
      'label' => 'お知らせ',
      'labels' => array(
      'all_items' => 'お知らせ一覧'
      ),
      'public' => true,
      'has_archive' => true,
      'menu_position' => 5,
      'supports' => $Supports
    )
  );
}
add_action( 'init', 'create_post_type_news' );

完成形は上記のような感じになります、ワードプレスの勉強も兼ねている方もいるかもなので要所だけ解説を入れておきます。

・投稿パーツの設定
3行目の$Supportsに投稿パーツを入れておき、それを17行目で使って設定しています、パーツは「'title'」,「'editor'」,「'thumbnail'」以外にもあるので必要であれば追加してください、タイトルだけ指定すればタイトルのみ表示されます。
 
投稿パーツについてはこちらでまとめられています。
・投稿オプションの設定
14行目~17行目で投稿のオプションを設定しています、「'menu_position'」の数字を変更するとサイドメニューで表示される位置が変わります、「5」はデフォルトで用意されている「投稿」の下になります。

テンプレートは再利用可能です

同じようにコピペすれば何個でも投稿タイプは追加でき再利用可能です、関数名や投稿タイプ名は他と被らないように注意しましょう、エラーが出てサイトが真っ白になりますよ。

テンプレートは使い回せますので色々試してみてください、イマイチよくわからなかったという方は、「お知らせ」の実装コードをコピペして感覚を掴んでみるといいでしょう。

以上になります。