ビボロク。どこかで誰かのためになるWebのTIPS・ノウハウ。備忘録として残しておきます
   
           

WP5.9.3でWidgetのカスタムHTMLにPタグが自動挿入されてしまう件(解決法なし・代案あり)

  • 投稿日/更新日
  1. home
  2. WordPress

投稿や固定ページのブロック要素に挿入できる「カスタムHTML」は、文字通りHTMLを直接入力できるブロックですが、ウィジェットにもこの「カスタムHTML」は利用できます。しかしながら、デフォルトでは<p>タグや<br>が挿入される困った仕組みになっています。

上記画面のように、カスタムHTMLに文章を入力します。改行もせずプレーンなテキスト入力して、一旦保存します。

再度ウィジェット画面を開くと、何故か<p>タグが挿入されています。改行があると<br>も付きます。当サイトでは広告タグをこのカスタムHTMLに入力していたのですが、<script>内にもbrタグが挿入されており、見つけたときはびっくりしました。よくもまあエラーも出ずに動いていたものです。

この方法を色々と調べたのですが、解決策はありません。下記のようなフィルターも入れましたが効果はありません。(上記2つは投稿のフィルタですが)

remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
remove_filter('widget_custom_html', 'wpautop');
remove_filter('widget_custom_html', 'wpautop' , 10, 3 );

ユーザー管理画面で「ビジュアルリッチエディターを使用しない」にチェックを入れれば入力できる、という記事も見つけましたが、ウィジェットには全く関係ありませんでした。

githubでも同様の現象を訴えるスレッドを発見しましたが、解決には至ってないようです。WordPressというよりも、Gutenbergの不具合になるようです。

色々と考えましたが、代案としては広告タグのような共通バーツはウィジェットでは管理をせず、テーマに独自の共有ファイルを作って、get_template_partで読み込むことにしました。むしろそれが一番簡単でした。ちなみにWordPress6.0でも直ってません

                   

備忘録として残しておきます。