4.8のアップデートに付属する新しいリッチテキストウィジェットは、データを出力する前にウィジェットのコンテンツにフィルタを追加するようです(おそらくthe_content
)。
私が気付いたのは、私が新しいテキストウィジェットでショートコードを使用すると、それが全体をめちゃくちゃにすることです(例えば、X
文字を×
マークと同等のHTMLエンティティである×
に置き換える、ランダム<p>
などを追加)。 。次のように、フィルタがwp_options
の下のwidget_text
テーブルに追加されます。
a:2:{
i:2;
a:3:{
s:5:"title";
s:6:"Sample";
s:4:"text";
s:14:"[shortcode-here]";
s:6:"filter";
s:7:"content";
}
s:12:"_multiwidget";
i:1;
}
今私はこれで5番目と6番目の値を置き換える場合:
s:1:" ";
s:1:" ";
フィルタは適用されなくなりました。 4.8にアップデートする前にテキストウィジェットがすでに追加されているのであれば、問題はありません。しかし、4.8にアップデートした後にウィジェットのSave
をクリックすると、問題が発生します。
ページに他のテキストウィジェットがあるかもしれないので、私はフィルタを完全に無効にしたくありません。
ショートコードを検出してそれらのフィルタをオフにすることは可能ですか?
4.8で導入された新しいフィルタwidget_text_content
があります src以下のデフォルトのコールバック
add_filter( 'widget_text_content', 'capital_P_dangit', 11 );
add_filter( 'widget_text_content', 'wptexturize' );
add_filter( 'widget_text_content', 'convert_smilies', 20 );
add_filter( 'widget_text_content', 'wpautop' );
これは、ウィジェットインスタンスの filter settingsが'content'
に設定されている場合に適用されます。
wp_options
テーブルから手動でフィルタ設定を削除すると、それはupdateメソッドの間にリセットされるようです src。
詳しくはtrac ticket #35243 をご覧ください。