0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Gutenberg対応】WordPressでカスタム投稿タイプを作る方法

Last updated at Posted at 2025-10-20

WordPressで「カスタム投稿タイプ」を作ってみよう

スクリーンショット 2025-10-20 154827.png

WordPressでは、デフォルトの「投稿」や「固定ページ」以外に、独自のコンテンツタイプを作成できます。これを「カスタム投稿タイプ」と呼びます。

私自身も最近WordPressのカスタマイズを始めたばかりで、練習の一環としてカスタム投稿タイプを作ってみました。

この記事では、カスタム投稿タイプの作り方を1行ずつ丁寧に解説します!

サンプルコード

まずは完全なコードを見てみましょう。

add_action('init', function() {
	register_post_type('news', array(
		'labels' => array(
			'name' => 'ニュース',
			'singular_name' => 'ニュース'
		),
		'public'       => true,
		'show_in_rest' => true,
		'supports'     => array('title','editor','thumbnail'),
	));
});

コードの解説

1行目:フックの設定

add_action('init', function() {

add_action() は、WordPressの特定のタイミングで処理を実行するための関数です。

  • 'init': WordPressの初期化時に実行されるフックポイント
  • function() {: 無名関数の開始。ここから実際の処理を記述します

カスタム投稿タイプの登録は、WordPressが初期化されるタイミング(init)で行う必要があります。

2行目:投稿タイプの登録開始

register_post_type('news', array(

register_post_type() は、カスタム投稿タイプを登録するための関数です。

  • 第1引数 'news': 投稿タイプのスラッグ(識別子)。URLやデータベースで使用されます
    • 小文字の英数字とアンダースコアのみ使用可能
    • 20文字以内が推奨
  • 第2引数 array(: 投稿タイプの設定を配列で指定します

3〜6行目:表示ラベルの設定

'labels' => array(
	'name' => 'ニュース',
	'singular_name' => 'ニュース'
),

labels は、管理画面に表示される名前を設定します。

  • 'name': 複数形の名前(管理画面のメニューなどに表示される)
  • 'singular_name': 単数形の名前(「1件のニュース」などに使用)

日本語の場合は単複同形なので、同じ名前を設定することが多いです。他にも add_new(新規追加)、edit_item(編集)など、様々なラベルをカスタマイズできます。

7行目:公開設定

'public' => true,

public は、この投稿タイプを公開するかどうかを設定します。

  • true: 管理画面とフロントエンドの両方で使用可能
  • false: 管理画面でのみ使用(通常は非推奨)

trueに設定すると、以下の機能が自動的に有効になります:

  • 管理画面にメニューが表示される
  • フロントエンドでアーカイブページが表示できる
  • 検索結果に含まれる

8行目:REST API対応

'show_in_rest' => true,

show_in_rest は、REST APIでこの投稿タイプを利用できるようにするかの設定です。

  • true: REST APIで利用可能になる
  • false: 旧エディタ(クラシックエディタ)のみ対応

これをtrueにすると:

  • ブロックエディタ(Gutenberg)が使える
  • 外部アプリケーションからAPIでデータを取得・更新できる

現在のWordPressでは、ほとんどの場合trueに設定することが推奨されます。

9行目:サポート機能の指定

'supports' => array('title','editor','thumbnail'),

supports は、この投稿タイプで使用できる機能を配列で指定します。

  • 'title': タイトル入力欄
  • 'editor': 本文エディタ
  • 'thumbnail': アイキャッチ画像

その他の指定可能な値↓

  • 'excerpt': 抜粋
  • 'author': 著者
  • 'comments': コメント
  • 'revisions': リビジョン(変更履歴)
  • 'custom-fields': カスタムフィールド
  • 'page-attributes': 並び順や親ページの設定

必要な機能だけを指定することで、管理画面がシンプルになります。

実装方法

スクリーンショット 2025-10-20 155453.png

このコードは、テーマの functions.php ファイルに記述します。

  1. WordPressの管理画面から「外観」→「テーマファイルエディター」を開く
    もしくは任意のテキストエディタ(VSCodeなど)でfunctions.phpを開く
  2. functions.phpを選択
  3. 最下部に完成したコードを貼り付ける
  4. 「ファイルを更新」をクリック / エディタの場合はCtrl + Sで保存

確認方法

スクリーンショット 2025-10-20 154750.png

コードを追加後、管理画面の左メニューに「ニュース」という項目が追加されます。そこから新しい記事を作成できるようになります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?