WordPressのカスタム投稿を新規作成する方法(プラグイン不要で自作)

この記事では「新規カスタム投稿タイプをプラグインなしで作成(オリジナルで自作)する方法」について解説します。

簡単にコピペで実装できるように紹介していきます。

カスタム投稿タイプとは何?

「カスタム投稿タイプ」は自分で追加できる投稿データの定義の種類を指します。
そもそも「投稿タイプ」はWordPressが持つ投稿データの定義の種類のことです。インストール直後の初期の状態では投稿タイプは「投稿」と「固定ページ」というものがありそれぞれデータの持ち方や構成に特徴があります。

おそらくまだピンとこないと思いますので、具体的に紹介していきますので読んでみてください。

投稿タイプ「投稿」

「投稿」は自らサイト構造を考えずにサイトを構築しやすい投稿タイプです。

最新の投稿が一番前に並び、投稿一覧はデフォルトのトップページに指定されているので自動的に更新された情報をユーザーに見せることが出来ます。また、投稿データにカテゴリーやタグを用いているので情報整理も自動的にされます。

WordPressの初期状態ではサイト全体はこちらをメインにした見せ方でになっているため、ブログや日記のような形式になっているというわけです。

投稿タイプ「固定ページ」

一方、「固定ページ」は自分でサイト構造を考えて構築していく投稿タイプと言えます。

ページの内容を編集してページを作るという意味では投稿と似ているが、使い方が全く異なる投稿タイプ。ページに階層構造をもちいることができサイトを整理する目的にも使われます。

投稿とは違い、固定ページは単体のページを作成しただけでは、意図的にメニューや別ページからリンクなどを貼らない限りサイトからそのページへ行くことはできません。

また固定ページはカテゴリやタグなども付けられません。

カスタム投稿タイプ

「投稿」「固定ページ」はあくまでWordPressシステムが初期設定として作った投稿タイプの1つです。

これらと同じような機能をもつ投稿タイプを自分で自由に追加する投稿タイプが「カスタム投稿タイプ」です。

タグやカテゴリをもつ固定ページのような投稿タイプも作れますし、応用すれば商品情報のような1ぺージにつき1商品で価格やレビュー評価などの情報を保持したデータベースのような投稿タイプを管理することもできます。

(カテゴリやタグも実はカスタム投稿タイプ同じように「カスタム分類」といって自分で増やせます。)

カスタム投稿タイプをプラグインなしで実装するサンプル

では早速カスタム投稿タイプを作ってみましょう。

以下のソースをWordPressのfunctions.phpというファイルに追記します。

<?php

	//初期化アクション登録
	add_action("init", function ()
	{

		//---------------------------------------
		//新カスタム投稿の追加
		//---------------------------------------
		register_post_type(
			"custom_post_a", // カスタム投稿タイプ名
			[
				"labels" => [
					"name" => "カスタム投稿A",         //メニュー等に表示する投稿タイプの表示ラベル名
					"add_new" => "新規追加",          //メニュー等の新規追加機能のラベル名
					"add_new_item" => "カスタム投稿Aの新規追加", //新規追加画面のタイトル ※
					"edit_item" => "カスタム投稿Aの編集",       //編集画面のタイトル ※省略時は
					"menu_name" => "カスタム投稿A",            //管理画面メニュー名(トップ) ※省略時はname
					"all_items" => "カスタム投稿A一覧",        //管理画面メニュー名(一覧ラベル) ※省略時はmenu_name
				],
				"public"        => true,  //カスタム投稿タイプを無効に(関連するフラグが全部falseに)
				"has_archive"   => true,  //カスタム投稿一覧の表示
				"menu_position" => 5,     //管理画面上での表示位置インデックス(5=投稿,10=メディア,20=固定ページ,25=コメント,60=テーマ,65=プラグイン,70=ユーザー,75=ツール,80=設定)
				"show_in_rest"  => false, //ブロックエディタを有効にするか?無効の場合はクラシックエディタ
				"hierarchical" => false,  //固定ページのようなページの階層構造を有効にする
				// 投稿編集画面で入力できるパーツを指定
				"supports" => array(
					"title",       //タイトル
					"editor",      //テキストエディタ
					//"thumbnail", //アイキャッチ画像
					//"author",    //投稿者
					//"excerpt",   //抜粋
					"revisions",   //リビジョンを保存
				),
			]
		);

	});

functions.phpについてわからない方のために説明します。

functions.phpの編集方法まとめ

functions.phpはWordPressの機能追加をするためのPHPファイルです。

(※実ファイルは/wp-content/themes/<テーマ名>/の直下にあります)

functions.phpを修正する場合は必ず親テーマではなく子テーマのfunctons.phpを修正してください。

※その理由や親テーマと子テーマについてはこちら↓の記事を参考に。

管理画面からfunctions.phpを参照・編集するには以下のように「外観>テーマ(ファイル)エディター」にアクセスしてテキスト編集をします。

PHPファイルの記述ルールとしてプログラムコードは以下のようにphpタグの囲みの中にある必要があります。

<?php

	→PHPのプログラムを書く場所

?> ←最後PHPで終わる場合だけ省略可能

また、直接functions.phpを編集するよりもこちらのプラグインで編集した方が便利なので参考にしてみてください。

functions.phpについての詳細はこちらの記事にまとめてあります。

最後に

プラグインを使ったカスタム投稿タイプは方法はこちら。管理画面から細かい設定ができます。勉強してどんなことができるかイメージする意味でも一度使う価値ありです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です