お問い合わせはコチラから

ACFでフィールド値が取れない時は?

サイト運営

ACFを使ってカスタムフィールドを設定する人は多いと思います。私も、カスタムフィールドを使う時はAFCを使います。

とあるサイトが完成に近づいたころ、以下の様な話がでました。

カスタムフィールドで管理画面からいじれるようにしたいなり

ACFでやれば簡単よ、と思ってやったら先日ドハマりしたのでメモしておきたいと思います。

ACFでカスタムフィールドを追加して、デフォルト値を設定したのに値が取得できない

ACFでカスタムフィールドを追加する時に、デフォルト値を設定しました。というのもサイトが完成に近づいていたので、フィールド設定値を改めて設定しなおす手間を省こうという意図でした。

早速、カスタムフィールドを表示させようとテンプレートで呼び出したところ、デフォルト値を設定しているのに表示されません。

$afc_summary = get_field('summary');	

なんで??と思いながら、以下のコードで、カスタムフィールドがあるか確認しました。

<?php
    if (is_user_logged_in()){
        global $wpdb,$post;
        $sql = "SELECT * FROM $wpdb->postmeta WHERE post_id=" . $post->ID;
        $results = $wpdb->get_results( $sql, OBJECT );
        print_r($results);
    }
?>

結果は、ありません。

記事やページを保存しなおせばACFのフィールドは読み込める

しかし、大事なことを忘れていました。

ACFで追加したフィールドが作られるのは、投稿やページなどを保存するタイミングである

たとえ、デフォルト値を設定していたとしても、DB上はカスタムフィールド値としては保存されていないので、再度保存するまでは読み込んでもNULL値になる。

まとめ

カスタムフィールドを追加して下手にデフォルトを設定したせいで、今回の現象の原因に気が付くのに時間がかかりました。

デフォルト値を設定する場合は、サイト構築前にカスタムフィールドを設定しておかないと結局はすべての記事やページを保存し直さないといけないことになります。

ACFはたまに使うと、なんで??と思う現象に結構出くわすのですが、今回のようにごくごく基本的な部分だと逆に気が付きにくいというお話でした。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました