4.8更新版附带的新富文本小部件似乎在输出数据之前为小部件的内容添加了一个过滤器(可能是the_content
).
我刚刚注意到,如果我在新的文本小部件中使用一个短代码,它会把整个事情弄得一团糟(例如,它会替换X
带的信函×
对应于×
标记,添加随机<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之前已经添加了文本小部件,那么就不会有问题。但是你点击的那一刻
Save
更新到4.8后,小部件上会出现问题。
我不想完全禁用过滤器,因为页面上可能有其他文本小部件。
是否可以检测到短代码并关闭其过滤器?
最合适的回答,由SO网友:birgire 整理而成
我们现在有了一个新的过滤器widget_text_content
在4.8中引入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\' );
如果小部件实例的过滤器设置设置为
\'content\'
.
手动从中删除过滤器设置时wp_options
表,它似乎在更新方法期间重置src。
参见trac票据#35243 了解更多信息。