ワードプレスでカスタムフィールドを設定できる有名なプラグインAdvanced Custom Fieldsの画像フィールドについてです。
不可解なことに特定の条件で画像フィールドでURLの取得ができない事がありました。
ACFの画像フィールドは、返り値を「配列」「URL」「ID」から選択することができます。

ここではURLを選択しています。
今回は全ページ共通のサイドバーにこの値を取得して画像を出力していました。
基本的には期待通りのURLが取得できていたのですが、なぜか検索ページでのみ返り値が画像IDになっていてURLが取得できない事態に。
共通のサイドバーなので、コードももちろん共通。
get_field()までをvar_dumpしてみてもやはり正常。
なのに検索ページだけなぜか返り値がIDになってしまう。
調べてみるとどうやらACFのバグのようです。
回避としてget_fieldの代わりに下記のコードを使用して問題なく取得できるようになりました。
function get_image_field( $field, $id ){
    $result =  get_field( $field, $id );
    if (is_numeric($result)) {
        $image_url = wp_get_attachment_url( $result );
    }else {
        $image_url = $result;
    }
    return $image_url;
}このコードをfunctionに追加して、get_field($field,$post_id)の代わりにget_image_field($field,$post_id)を使ってもらえば画像のURLが取得できるようになります。
どういう条件のときにバグが起こるのかも不明ですが、今後のアップデートで修正されるといいですね。

