[WordPress] ACFのカスタムフィールドグループをphp形式で書き出す際の注意点

[WordPress] ACFのカスタムフィールドグループをphp形式で書き出す際の注意点


開発

Advanced Custom Fieldsで設定したカスタムフィールドグループを、直接テーマのfunctions.phpに書き加えるphp形式で書き出すことが出来ますが、その際に1点注意が必要です。

普段、フィールドグループ名はわかりやすく日本語で書いていても特に問題は無いのですが、functions.phpに書き加える際には、「半角英数字」にしておかないと、

  • 目的とした箇所以外にフィールドグループが表示される
  • 記事の書き込み中にフィールドグループが非表示になる

のようなエラーが起きます。

これは、フィールドグループ名を日本語にしていると、下のようにidがURLエンコード(?)されることによって生じるようです(例:フィールドグループ名:カスタムフィールドグループ)。

if(function_exists("register_field_group"))
{
	register_field_group(array (
		'id' => 'acf_%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e3%82%b0%e3%83%ab%e3%83%bc%e3%83%97',
		'title' => 'カスタムフィールドグループ',
		'fields' => array (
			array (
				'key' => 'field_53041a7b5fc42',
				'label' => '入力欄',
				'name' => 'text_input',
				'type' => 'text',
				'default_value' => '',
				'placeholder' => '',
				'prepend' => '',
				'append' => '',
				'formatting' => 'html',
				'maxlength' => '',
			),
		),
		'location' => array (
			array (
				array (
					'param' => 'post_type',
					'operator' => '==',
					'value' => 'post',
					'order_no' => 0,
					'group_no' => 0,
				),
			),
		),
		'options' => array (
			'position' => 'normal',
			'layout' => 'no_box',
			'hide_on_screen' => array (
			),
		),
		'menu_order' => 0,
	));
}

これを、Custom Fields Groupと書き換えてやればエラーは止まりました。

if(function_exists("register_field_group"))
{
	register_field_group(array (
		'id' => 'acf_custom-fields-group',
		'title' => 'Custom Fields Group',
		'fields' => array (
			array (
				'key' => 'field_53041a7b5fc42',
				'label' => '入力欄',
				'name' => 'text_input',
				'type' => 'text',
				'default_value' => '',
				'placeholder' => '',
				'prepend' => '',
				'append' => '',
				'formatting' => 'html',
				'maxlength' => '',
			),
		),
		'location' => array (
			array (
				array (
					'param' => 'post_type',
					'operator' => '==',
					'value' => 'post',
					'order_no' => 0,
					'group_no' => 0,
				),
			),
		),
		'options' => array (
			'position' => 'normal',
			'layout' => 'no_box',
			'hide_on_screen' => array (
			),
		),
		'menu_order' => 0,
	));
}

既に日本語のままで使用している場合は、「wp_usermeta」のテーブルに保存されているので、ここを書き換えてやれば良いのではなかろうかと思います(ちゃんと確認はしていませんので要注意です)。

今日はここまで
[WordPress] ACFのカスタムフィールドグループをphp形式で書き出す際の注意点

[WordPress] ACFのカスタムフィールドグループをphp形式で書き出す際の注意点


開発

Advanced Custom Fieldsで設定したカスタムフィールドグループを、直接テーマのfunctions.phpに書き加えるphp形式で書き出すことが出来ますが、その際に1点注意が必要です。 普段、フィールドグ…


関連する記事



こちらはいかが?


[WordPress] パーマリンクを自動翻訳してくれるプラグイン
[WordPress] パーマリンクを自動翻訳してくれるプラグイン

パーマリンクを英語にした方が、SEO的に良いよ、という事です。 であれば翻訳API使って、自動翻訳してくれるようにすれば良くないかい?と思い、調べてみたらGoogle翻訳APIを使って同様なことを実装しているという記事。…

WordPressのギャラリーデフォルト値を変更する方法
WordPressのギャラリーデフォルト値を変更する方法

WordPressのギャラリー設定のデフォルト値は、 のように、 リンク先:「添付ファイルのページ」 カラム:「3」 サイズ:「サムネイル」 のようになっています。 このデフォルト値を リンク先:「メディアファイル」 カ…

Yoast SEOでデフォルトのOGP画像を設定する方法
Yoast SEOでデフォルトのOGP画像を設定する方法

Yoast SEOでOGPのタグをヘッダーに追加してますが、個別投稿でアイキャッチ画像が無いと、記事内の先頭画像を自動で取得したり、画像無しとなったりです。 しかし、せっかくシェアして頂いた際に画像が全く無いのはやはり素…

1 件のコメント

  • yamada

    記事に残して頂きありがとうございます。
    助かりました。

コメントを残す