WordPress標準のカスタムフィールドを使った入力項目の追加方法

WordPressの投稿画面の初期状態は「タイトル」と「本文」を書くところが用意されています。この他に追加できる入力項目がカスタムフィールドです。

WordPressに標準でついているカスタムフィールドを使う、プラグインを使う、機能を自作するといった方法もありますが、この記事では主に、WordPress標準のカスタムフィールドの使い方をまとめていきます。

動作確認環境

  • WordPressバージョン : 6.8.3
  • 動作確認日 : 2025/11/11

カスタムフィールドを使う時

特に決まった項目はなくなんでも自由に記入したい!という場合には不要ですが、いつもこの内容を記入する(いつもじゃなくても何度か同じような内容の情報を入力することがある)場合に、カスタムフィールドはとても便利な機能です。

毎回同じ項目を記入するのは手間です。入力する内容が決まっているようなサイトを作るなら、カスタムフィールドを使わない手はありません。

例えば商品を紹介するサイトの場合、「商品名・金額・メーカーやブランド・サイズ」など、決まった項目を載せるとしましょう。そうすると毎回記事を書くたびに上記の項目名も手打ちしなくてはなりません。コピペでもいいのですが、別の投稿画面へ移って特定の項目を探してコピーして戻ってペーストして…というのは手間です。
わざわざ他の記事を参照せずとも済ませられるのがカスタムフィールドです。

入力の手間を省くだけでなく、その値によって「金額順に並び替える」「メーカーごとに出し分ける」といった表示のカスタマイズもカスタムフィールドならではです。

投稿画面にカスタムフィールドを表示させる

カスタムフィールドを使う時は、投稿画面の設定とテンプレートファイルでカスタムフィールドを表示させる記述が必要です。

まず投稿画面にカスタムフィールドを表示させるところから始めます。投稿編集画面の【設定 > 一般】で表示をONにします。

ONにすると以下のような表示になります。そのままリロードしても問題なければ「ページを表示して、リロード」をクリック。
もし記事が編集途中であれば、このままリロードすると編集した記事が保存されないため、保存してからボタンをクリックします。

カスタムフィールド機能がONになると、編集画面の下にカスタムフィールドの入力欄が表示されます。

カスタムフィールドの入力項目が表示されない

私が知りうる範囲でカスタムフィールドを表示できないパターンは2つあります。

1つはカスタム投稿の場合。
こちらはカスタム投稿の「サポート」にカスタムフィールドを設定する必要があります。

例えば、プラグインCustom Post Type UIでカスタム投稿を追加したなら、「サポート」の部分にチェックを入れます。他のカスタム投稿プラグインでも、同じような設定項目があると思います。

テンプレートタグを使用してカスタム投稿を作成しているなら 'supports''custom-fields' を含める必要があります。

PHP
'supports' => ['title', 'editor', 'thumbnail', 'custom-fields',],

2つ目は Advanced Custom Fields (ACF)プラグインを使用している場合。
ACFのバージョン6.6.2を使って確認しましたが、プラグインを有効化した瞬間デフォルトのカスタムフィールドが非表示になりました。

これは、ACFを使っているのだから元のフィールドはいらないよね?読み込み早くするために非表示にしている、ということのようです。

ACFを有効化したまま、標準のカスタムフィールドも使用したい場合は以下コードを functions.php へ追加します。

functions.php
add_filter('acf/settings/remove_wp_meta_box', '__return_false');

カスタムフィールドを入力

「名前」と「値」を設定し、「カスタムフィールドを追加」をクリックすると投稿に入力したカスタムフィールドが追加されます。

「名前」の部分はプログラム処理でも使われるため英語が基本となりますが、日本語でも大丈夫でした。サイトの規模や表示方法に応じて使い分けてもいいのかなとは思います。

「名前」は、すでに登録されているカスタムフィールドがあれば、それらが選択できるようになります。

既存のフィールドではなく新規でカスタムフィールドを作成したい場合は、「新規追加」をクリックすれば入力できるようになります。

テンプレートファイルで出力コードを記述

カスタムフィールドに入力したい内容を表示させるために、ファイルに出力コードを記述します。

ここではサンプルとして「WPプラグイン名」、と「バージョン」のカスタムフィールドを作りました。これを元に出力コードを書いていきます。

post_custom() にカスタムフィールドの名前を指定することで、その値を出力することができます。

PHP
<p><?php echo post_custom('WPプラグイン名'); ?>を使用しています。バージョンは<?php echo post_custom('バージョン'); ?></p>

get_post_custom() を使って以下のように出力させることもできます。

PHP
<?php 
	$custom_data = get_post_custom();
	if ($custom_data) {
		foreach ($custom_data as $key => $value) {
			if( !(preg_match("/^_/", $key)) ){ 
				echo "<p>" .$key . "" . $value[0] . "</p>"; 
			}
		}
	}
?>
<?php endif ?>

カスタムフィールドの設定内容をリストで一気に出力できる the_meta() も便利です。

PHP
<?php the_meta(); ?>

the_meta() を使用して出力されるHTMLは以下のようなものです。自動的にclassが付くので、これを利用してスタイルをあてることができます。

<ul class="post-meta">
  <li><span class="post-meta-key">WPプラグイン名:</span> ACF</li>
  <li><span class="post-meta-key">バージョン:</span> 6.0</li>
</ul>

get_post_meta() 関数でもカスタムフィールドの値が取得できます。

PHP
<p>使用したプラグインは
	<?php
		$plugin_name = get_post_meta(get_the_ID(), 'WPプラグイン名', true);
		$plugin_version = get_post_meta(get_the_ID(), 'バージョン', true);
		echo $plugin_name . "、バージョン" . $plugin_version;
	?>
	です。
</p>

投稿の任意の場所に埋め込みたい場合はショートコードを利用して入れ込むこともできます。

functions.php
function shortcode_custom_field() {
  ob_start();
  $plugin_name = get_post_meta(get_the_ID(), 'WPプラグイン名', true);
  $plugin_version = get_post_meta(get_the_ID(), 'バージョン', true);
  echo "<p>" . $plugin_name . " / バージョン" . $plugin_version. "</p>";
  return ob_get_clean();
}
add_shortcode('add_custom_fields', 'shortcode_custom_field');

設定したら投稿でショートコードを入力すればOK。

上記のサンプルコードで実際に出力したものがこちら。

カスタムフィールド作成プラグイン

WordPress標準のカスタムフィールドも使えないことはないけれど、やはりプラグインを使うとより簡単に便利なカスタムフィールドが作れます。

カスタムフィールドの種類もテキスト以外にチェックボックスやセレクト、画像や日付ピッカーなどさまざまなタイプが用意されてます。
入力する内容によってこういったフィールドタイプが簡単に生成されるので、テキスト以外の入力もほしい場合は特にプラグインを使用するのがおすすめです。

Advanced Custom Fields(以下ACF) はカスタムフィールド作成プラグインの中でも最もポピュラーで人気のプラグインです。

インストールして有効化するとすぐにカスタムフィールドが作成できます。高機能かつ操作が簡単でわかりやすく、迷っても情報量が多いので調べるとネット上で答えが見つけられます。

有料でしか使えない機能もありますが、無料で利用できる範囲も広いので、有料版を使わずできる範囲のことをするという選択肢もアリかと思います。
ACFの有料版料金はこちらをチェック

特にこだわりがなく、何を使っていいか分からないという場合はまずこのプラグインから試してみてください。

Meta Box は中級者〜上級者向けで、カスタムフィールドのプログラムを作るための関数を提供しているプラグインです。
インストールしただけではカスタムフィールドを作成することはできず、インストール後自分でカスタムフィールドプログラムを作る形になります。

Meta Box を使用するならPHPスキルは必須です。0からカスタムフィールドを自作するよりかは簡単に作成できるので、コードに慣れている方で細かい設定をしたい場合はおすすめです。

【Meta Box のオンラインジェネレーター】Online Generator – Meta Box

全て無料で使えるわけではなく、利用したい機能によって価格が変わります。
Pricing – Meta Box

Meta Box の使い方の詳細はこちらの記事が参考になります。
WordPressのカスタムフィールドプラグイン MetaBoxの使い方 | Designup

Smart Custom Fields(以下SCF) は シンプルで使いやすいカスタムフィールドプラグインです。ACF より使える機能は少なくなりますが、そこまで機能が必要なければこのプラグインでも十分です。

SCF の魅力はACFでは有料版にしないと使えない「繰り返しフィールド」が無料で利用できること。これを必須にしたい、そして無料で使いたいならSCFがおすすめでしたが、開発者の方からクローズに向けて動く、というアナウンスがあったため使用する際は慎重になっています。
ただ、機能開発は積極的に行なっていないかもしれませんが、メンテナンスはされているようです。WordPress最新バージョンにも対応しています。

SCFについてはこちら

プラグインはサイトを重くしたり、予期しないエラーが出たりであまり使いたくない…という方もいるかと思います。かつて私もそう考えてできる限りプラグインは使わずに自作しようとしていました。これは自分や社内で運用するサイトならいいと思います。またそこまで複雑なフィールドを作らないのであればプラグインなしでも作りやすいとも思います。

【プラグインなしのカスタムフィールドづくりの参考】独自のカスタムフィールドを追加する方法。プラグインなしでオリジナルの入力項目を追加しよう [FIT BLOG-フィットブログ]

ただフリーランスでクライアントに納品するような形になったとき、コードの内容まで説明するのが難しかったり時間がなかったりで、わざわざ自作する必要あるかな…とも思うようになりました。
納品先にコードを解読して変更できたりする人がいれば問題ないかと思いますが、自作のコードは解読が難しいことがあります。
こういったことから「運用」していく面ではマイナスになると考えるようにもなりました。

何をどう使うかは考え方やその状況によって変わると思いますが、やっぱりプラグインは便利ですよね。

そしてカスタムフィールドもとても便利な機能なので、使いこなしていきましょう!

index