ハシウェブ

Web制作、プログラミングに関する情報を発信するブログ

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

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

企業、店舗向けのホームページをwordpressで制作するときに便利なカスタム投稿タイプについて解説します。
商品紹介、スタッフ紹介、実績紹介、お客様の声 等、投稿とは別に増えていくページを作成したいときに便利です。

目次
  1. サンプルコード
  2. 解説
  3. メリット、デメリット
    1. メリット
    2. デメリット
  4. まとめ

サンプルコード

例えば、スタッフ紹介の一覧ページ、詳細ページをつくる場合、このサンプルコードをfunctions.phpに貼り付けるだけで、通常の「投稿」とは違う「スタッフ紹介」という投稿ができあがります。

管理画面の左サイドバーを確認して「スタッフ紹介」ができていれば成功です。

/* カスタム投稿タイプ
* ---------------------------------------- */
function register_custom_post_type() {
	/* *********************************************** */
	$name = "スタッフ紹介";
	$slug = "staff";

	$labels = array(
		"name" => $name,
		"singular_name" => $name,
		"menu_name" => $name,
		"all_items" => "投稿一覧",
		"add_new" => "新規追加",
		"add_new_item" => "新規投稿を追加",
		"edit" => "編集",
		"edit_item" => "投稿の編集",
		"new_item" => "新規投稿",
		"view" => "表示",
		"view_item" => "投稿を表示",
		"search_items" => "投稿を検索",
		"not_found" => "投稿が見つかりませんでした。",
		"not_found_in_trash" => "ゴミ箱内に投稿が見つかりませんでした。",
		"enter_title_here" => "投稿のタイトルを入力。",
		"parent" => "親",
	);
	$args = array(
		"labels" => $labels,
		"description" => "",
		"public" => true,
		"show_ui" => true,
		"show_in_rest" => true,
		"has_archive" => true,
		"show_in_menu" => true,
		"exclude_from_search" => false,
		"capability_type" => "post",
		"map_meta_cap" => true,
		"hierarchical" => false,
		"rewrite" => array("slug" => $slug, "with_front" => false),
		"query_var" => true,
		"menu_position" => 5,
		"supports" => array("title", "editor", "author", "thumbnail"),
		"taxonomies" => array(),
	);
	register_post_type($slug, $args);
	/* *********************************************** */
}
add_action("init", "register_custom_post_type");
管理画面

解説

  • 「$name = "(投稿名)";」 …投稿に表示させる日本語
  • 「$slug = "(スラッグ)";」 …URL等に使う英語

$name、$slugのところを自由に入れ替えてもらえれば別のカスタム投稿にも使えます。
スラッグは固定ページやカスタム分類と同じにならないように気をつけてください。

あまり変更する必要はないと思いますが、詳細は公式オンラインマニュアルで確認して変更してください。

ブロックエディタ、クラシックエディタを切り替えるときは、「'show_in_rest' => true,」を切り替える必要があるので注意してください。

Custom Post Type UI」等プラグインを使う方法もあるのですが、コーポレートサイト制作だとプラグインをインストールしたり、毎回同じ設定作業を繰り返すことになるので、functions.phpに好みの設定をつくっておけばいいので、減らすのも増やすのも簡単にできます。

コーポレートサイトでカスタム投稿タイプをよく使うコンテンツ
  • 商品紹介
  • スタッフ紹介
  • 実績紹介
  • お客様の声

メリット、デメリット

メリット

デザイン等をカスタマイズしやすい
「商品紹介」「スタッフ紹介」等の詳細ページ、一覧ページを同じデザインでつくることはあまりないので、それぞれのデザインを切り替えることがテンプレートファイルを分ける等でわかりやすくなります。
管理画面のメニュー項目、一覧画面が別になるので管理しやすい
「投稿」だけでもカテゴリ分けで機能としては同じようなことができますが、メニュー項目や一覧画面を分けるにはカスタム投稿を使うしかありません。
コーポレートサイトだとあまりPCに詳しくない担当者が使うことも多いので、こういったことでユーザビリティが上がります。
一覧画面も整理されるのでわかりやすくなります。
投稿のたびにカテゴリをチェックしなくていい
上の項目と重なりますが、カテゴリ分けで実装した場合、1投稿するたびにこれは「商品紹介」、これは「スタッフ紹介」とチェックしていかなくてはなりません。こういう不要な作業はできるだけ無くしてあげたほうがいいです。
カテゴリを別々に設定できる(カスタム分類を使う)
カスタム分類(カスタムタクソノミー)を設定することで、カテゴリが不要な投稿には表示させないようにしたり、細かいカテゴリ分けをわかりやすくすることができます。

デメリット

投稿と併用するときは注意が必要
カスタム投稿タイプはいくつつくっても、スラッグを変えるだけで同じ関数が使えたりするのですが、通常の投稿だけは別の関数が必要になります。
旧サイトからのインポートがなく、カスタム投稿タイプをたくさんつくるような新規サイト制作のときは思い切って、カスタム投稿タイプだけにしてしまうのも効率的かもしれません。

まとめ

カスタム投稿タイプを使うことで、デザインのカスタマイズや、管理画面のユーザビリティをよくすることができます。
応用するとプラグインに頼らずにメインスライダーの画像を追加したり、入れ替えたりすることもできるのでwordpressの可能性が広がります。プラグインでもカスタム投稿タイプを応用してできているものもあります。