なんか急にお客様から問い合わせが!!
要件は、管理画面で固定ページに入力していた欄が急に無くなった!
という内容。
しかし、DBの「wp_postmeta」テーブルの中身を確認すると、ちゃんと登録されている。
あれー!!
なんでだ!!DBに情報があるのに、管理画面や固定ページテンプレートに表示されない??
管理画面の固定ページもしくは投稿ページにある上部「表示」を開いても「カスタムフィールド」を選択することすらできない。
そもそも「カスタムフィールド」の項目すら消えている!!
そこで色々調べたところ、下記のサイトに記載してありました。
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/
詳しく調べて見たらそうゆう仕様になっているようでした。
すみません、詳しく調べてから質問すべきでした。
結果から言いますと、
以下のコードをテーマの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」にすることで、表示するようにするといった流れです。
英語のサイトなども検索したのですが見当たらなかったので、
念のため投稿は消さずに残しておきますね。
どうやら、プラグイン「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の確認と実行は必要ですね。