WordPress4.8のアップデートにより、テキストウィジェットの仕様が変わりました。
それにより、新たにテキストウィジェットを設定すると勝手に段落が入り、pタグや、brタグが自動挿入されてしまい、余分なスペースが表示されるようになってしまいました。
今回は、「Wordpress4.8のテキストウィジェットに余分なスペースが入るのを解除する方法」について紹介したいと思います。
目次
WordPress4.8の新テキストウィジェットの問題点
WordPress4.7以前では以下のようなシンプルなテキストウィジェットが利用されていました。
けれど、Wordpress4.8以降は以下のような、ビジュアルエディターが追加されたテキストウィジェットになりました。
一見、便利になったようなんですけど、以前あった「自動的に段落を追加する」機能がなくなってしまいました。
無くなるだけなら、まだ良かったんですけど新しいテキストウィジェットでコードなどを貼り付けると、勝手に「”自動段落を追加する”機能が有効になった状態でテキストウィジェットが表示される」といったことになってしまいました。
なので、新ウィジェットで新しくテキストウィジェットを置いて、アドセンスコード等を以下のように
改行込みで貼り付けると
「自動段落追加機能」が有効な状態でページに表示されてしまいます。表示されたタグを見てみると、こんな感じに段落が勝手に挿入され、余分なpタグやbrタグが付加された状態で出力されます。
これだと、アドセンス表示位置などが余白の分だけ崩れてしまいます。
以下では、この「自動段落追加」機能を無効にして、勝手にpタグやbrタグが追加されてしまうのを防ぐ方法を紹介します。
WP4.8以降の「自動段落追加」を無効にする方法
テキストウィジェットで自動段落追加機能を無効にするには、functions.phpにちょっとしたコードを追記するだけです。
以下に紹介する、どちらかのコードをテーマ(子テーマ)のfunctions.phpに書き込めばコピペすればOKです。
テキストウィジェットでwpautopフィルタを取り除く
以下の一行をfunctions.phpに追記します。
remove_filter('widget_text_content', 'wpautop');
ウィジェット表示時にフィルタを無効にする
以下のようにwidget_display_callbackをフックして、フィルターを無効にする方法でもOKです。
function clean_widget_display_callback( $instance, $widget, $args ) { $instance['filter'] = false; return $instance; } add_filter( 'widget_display_callback', 'clean_widget_display_callback', 10, 3);
注意点
上記の方法だと、「自動段落追加」機能が全て無効になってしまいます。
ですので、「自動段落追加」機能を見込んでテキストエディターに文章を入力した場合は、pやbrタグが自動で付加されません。ですので、段落を挿入したい場合はビジュアルエディターを使用して自前で挿入する必要があります。
参考情報
今回紹介した方法は、「何か解決方法はないか?」と探していたら、Wordpressフォーラムで見つけました。
参考 Topic: How to Disable Visual Editor in The Text Widget « WordPress.org Forums
まとめ
こんな感じで、「新しいテキストウィジェットで余分なスペースができてしまう問題」は解決できると思います。
ただ注意点にも書いたように、自動的に段落は付加されなくなるので注意が必要です。
ちなみに、Wordpress4.7以前のような旧テキストウィジェットライクなものが利用したい場合は、以下のようなプラグインを使用すると良いかもしれません。
もしくは、自前で旧式テキストウィジェットを作ってしまうとか。
正直、Wordpress4.8のテキストウィジェットの動作はどうかと思うので、もしかしたら公式側で改善されることもあるかもと淡い期待をしています。
追記(2017年7月1日)
2017年6月29日に公開された4.8.1 – Make WordPress Coreによると、7月後半公開予定のv4.8.1において「HTML Code Widget(日本名は不明)」という新しいテキストウィジェットが追加されるようです。
4.8.1 planning
「HTML Code Widget」が追加されたら、今回紹介したカスタマイズ部分は削除して新しいウィジェットを利用することをおすすめします。
はじめまして。
この記事、とても助かりましたです。
個人的にウィジェットではテキストしか必要ないのに何をしてくれるんだ…と。
ビジュアルからテキストに切り替えたら、入力内容がぐちゃぐちゃになっていたのです。
ウィジェット内でもPHPを書いていたのですが、それが全部消えているのです。
偶然にも入力内容のテキストを残していたので事なきを得たのですが…
別サイトで残していないものがあるのですが、改善されるまでしばらく待つ方がいいのでしょうか。
ちょっとこの改善は正直、個人的にはものすごく困る内容でございます。