Advanced Custom Fields WYSIWYGエディタのpタグ削除

- WordPress -
2021.01.07
WordPress/ワードプレス
  • Advanced Custom Fieldsで作ったカスタムフィールドに「WYSIWYG(ウィジウィグ)エディタ」を使っていて、
  • エディタに入力した内容をechoで出力したら、勝手にpタグで挟まれていた...

こんなふうに、pタグ自動挿入に悩まされている方へ。

具体例をあげると、このようにAdvanced Custom Fieldのフィールドを作ったとして、

advanced custom field エディターのpタグ削除

エディタで内容を入力して、ループの中でget_field()してechoしたら...

archive-faq.php$acf_field = get_field( 'faq' ); 
echo $acf_field;

自分で書いた覚えのないpタグで挟まれていた...という状況です。

advanced custom field エディターのpタグ削除

Advanced Custom Fields WYSIWYGエディタのpタグを削除

get_field()の仕方を少し変えるだけで実現できます。

もともとこのようにしていたものを、

BEFORE$acf_field = get_field( 'faq' ); // フィールド名が'faq'の場合
echo $acf_field;

このように変えます。ポイントは第3引数にfalseを放り込むこと。

AFTER$acf_field = get_field( 'faq', $post->ID, false );
echo $acf_field;

これでechoしてみると、pタグが消えたことが確認できました。

advanced custom field エディターのpタグ削除

pタグが除去されている

pタグは削除したいけど改行は反映させたい場合

ただ、falseにすると、こんどはエディタ上で改行して保存してもフロント表示では改行が反映されなくなります。

advanced custom field エディターのpタグ削除

エディタで改行しても...

advanced custom field エディターのpタグ削除

フロント表示で改行が反映されない

pタグは要らないけど、改行の反映は必要

そんなときは、echoの仕方を少し変えます。

AFTER$acf_field = get_field( 'faq', $post->ID, false );
echo nl2br( $acf_field );

PHPのnl2br関数で改行部分にbrタグを挿入したHTMLが返ってくるので、これで改行がフロントへ反映されるようになりました。

advanced custom field エディターのpタグ削除

この場合はesc_html()でエスケープ処理を施すとなお良しですね。

AFTER$acf_field = get_field( 'faq', $post->ID, false );
echo nl2br( esc_html( $acf_field ) );

・・・

以上、Advanced Custom FieldsのWYSIWYGエディタで自動挿入されるpタグを削除する方法と、改行を反映させる方法でした。

↑TOP