web-dev-qa-db-ja.com

4.8テキストウィジェットからフィルタを削除することは可能ですか?

4.8のアップデートに付属する新しいリッチテキストウィジェットは、データを出力する前にウィジェットのコンテンツにフィルタを追加するようです(おそらくthe_content)。

私が気付いたのは、私が新しいテキストウィジェットでショートコードを使用すると、それが全体をめちゃくちゃにすることです(例えば、X文字を&#215;マークと同等の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
Jack Johansson

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 をご覧ください。

2
birgire