我正在使用TinyMCE编辑器运行Wordpress 4.1。在TinyMCE编辑器中,我启用了高级列表插件,该插件允许自定义列表样式类型的列表项(例如<li style="list-style-type: lower-alpha">
)。
当我提交带有修改后的列表样式的帖子时,list-style-type
声明被删除,但其他CSS声明也没问题(例如text-align
)。
查看Wordpress源代码,CSS正在safecss_filter_attr()
中的kses.php
函数进行过滤。在safecss_filter_attr()
中,我可以看到一系列CSS声明。如果我将list-style-type
添加到该数组,我可以保存我的帖子,list-style-type
不再被过滤掉。
然而,编辑Wordpress源是不可维护的,因为在升级Wordpress时它最终会被覆盖。所以,我的问题是:如何阻止Wordpress以可维护的方式过滤出list-style-type
CSS声明?
答案 0 :(得分:2)
您正在编辑的数组实际上是作为参数传递给'safe_style_css'
过滤器。 'safe_style_css'
的返回值存储在$allowed_attr
中。 (kses.php中的第1482行)
所以在你的functions.php中,写一个看起来像这样的函数。
function my_css_allow($allowed_attr) {
if (!is_array($allowed_attr)) {
$allowed_attr = array();
}
$allowed_attr[] = 'list-style-type';
return $allowed_attr;
}
add_filter('safe_style_css','my_css_allow');
我没有测试过,但它看起来应该有效。
HTH,
= C =