ACFのthe_field()でエラーメッセージ

ACFのthe_field()でエラーメッセージ

先日、ワードプレスの管理画面上に下記のようなメッセージが・・・

ACF — ACF now automatically escapes unsafe HTML when rendered by the_field or the ACF shortcode. We’ve detected the output of some of your fields has been modified by this change, but this may not be a breaking change. Learn moreShow details.

えっと、the_fieldってめっちゃ使っているけど・・・と絶句。
Show detailsをクリックすると、問題箇所が表示されます。

movfield – rendered via the_field

ここの表示にthe_fieldが使われてるよ、と教えてくれているらしい。意味はわかったけど、どう修正すれば良いのか不明なので、下記ページへ。

https://www.advancedcustomfields.com/blog/acf-6-2-5-security-release/

要するに、セキュリティ上の問題で表示できなくなるのは、以下のケース

ショートコードを利用してtextarea または WYSIWYG フィールドのスクリプトや iframeなどを出力している場合

[acf field="field_name"]

上記の書き方をしているケースです。

the_field()やthe_sub_field()を使って、textarea または WYSIWYG フィールドのスクリプトや iframeなどを出力している場合

the_field('field_name')

上記の書き方をしているケースです。今回はこちらのケースで、iframeで読み込んでいた動画が表示されなくなっていました。

修正の方法はカンタンで

e

echo wp_kses_post( get_field('field_name') );

で良いようです。the_fieldを使っていても、「textarea または WYSIWYG フィールドのスクリプトや iframeなど」に該当しなければ問題ないみたいです。

最近はLazyblocksのような使い勝手の良いプラグインの台頭もあって、不動のACFの立場も万全とはえいないのかもねー。時代の流れは怖い。