日陰ヤンキーの日々

急にwordpressの管理画面でプラグイン「Advanced Custom Field」のカスタムフィールドの入力欄が表示されない!!

wordpress

なんか急にお客様から問い合わせが!!

要件は、管理画面で固定ページに入力していた欄が急に無くなった!

という内容。

しかし、DBの「wp_postmeta」テーブルの中身を確認すると、ちゃんと登録されている。

あれー!!
なんでだ!!DBに情報があるのに、管理画面や固定ページテンプレートに表示されない??

管理画面の固定ページもしくは投稿ページにある上部「表示」を開いても「カスタムフィールド」を選択することすらできない。
そもそも「カスタムフィールド」の項目すら消えている!!

そこで色々調べたところ、下記のサイトに記載してありました。


詳しく調べて見たらそうゆう仕様になっているようでした。
すみません、詳しく調べてから質問すべきでした。
結果から言いますと、
以下のコードをテーマのfunctions.phpに記述することで表示されました。
AFC側の設定を変更する記述になります。
function my_acf_init() { if (function_exists('acf_update_setting')) { acf_update_setting('remove_wp_meta_box', false); } } add_action('acf/init', 'my_acf_init');
2018.02.08 14:05 – 追記:function_exists()を追加しました。
ここからは蛇足です。
AFC PRO(5.6.8)では、初期設定としてデフォルトのカスタムフィールドを削除するように設定されていました。
advanced-custom-fields-pro/afc.php:99行目
'remove_wp_meta_box' => true
また、投稿編集画面の際に、メタボックスを「remove_meta_box()」を利用して消しています。
advanced-custom-fields-pro/includes/forms/form-post.php.php:226行目~
// remove postcustom metabox (removes expensive SQL query) if( acf_get_setting('remove_wp_meta_box') ) { remove_meta_box( 'postcustom', false, 'normal' ); }
AFCの設定情報を変える「acf_update_setting()」を利用して、「remove_wp_meta_box」の値を「false」にすることで、表示するようにするといった流れです。
英語のサイトなども検索したのですが見当たらなかったので、
念のため投稿は消さずに残しておきますね。

WordPress.org 日本語

https://ja.wordpress.org/support/topic/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%80%8Cadvanced-custom-field-pro%E3%80%8D%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E6%8A%95%E7%A8%BF%E7%B7%A8%E9%9B%86%E7%94%BB/

どうやら、プラグイン「Advanced Custom Field」の仕様が元々こういった流れになっているみたいです。
知らなかった。。

function my_acf_init() {
	if (function_exists('acf_update_setting')) {
		acf_update_setting('remove_wp_meta_box', false);
	}
}
add_action('acf/init', 'my_acf_init');

上記サイトのようにfunctions.phpに「remove_wp_meta_box」を利用する方法を使い、無事表示する事ができました。

バージョンアップしたら直るのかな??
お客様のサイトなので、怖くて実行しておりません(笑)

でも、定期的にプラグインとwpのバージョンUPの確認と実行は必要ですね。

モバイルバージョンを終了