Wordpress - 自定义 CSS 过滤器
Wordpress - Customizing CSS Filters
我是 运行 带有 TinyMCE 编辑器的 Wordpress 4.1。在 TinyMCE 编辑器中,我启用了 Advanced Lists 插件,它允许自定义列表项的列表样式类型(例如 <li style="list-style-type: lower-alpha">
)。
当我提交带有修改列表样式的 post 时,list-style-type
声明被删除,但其他 CSS 声明就可以了(例如 text-align
).
查看 Wordpress 源代码,CSS 正在被 kses.php
中的 safecss_filter_attr()
函数过滤。在 safecss_filter_attr()
中,我可以看到一组 CSS 声明。如果我将 list-style-type
添加到该数组,我就可以保存我的 post,并且 list-style-type
不再被过滤掉。
但是,编辑 Wordpress 源代码是不可维护的,因为它最终会在升级 Wordpress 时被覆盖。所以,我的问题是:如何防止 Wordpress 以可维护的方式过滤掉 list-style-type
CSS 声明?
您正在编辑的数组实际上是作为参数传递给 'safe_style_css'
过滤器的。 'safe_style_css'
的 return 值存储在 $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=
我是 运行 带有 TinyMCE 编辑器的 Wordpress 4.1。在 TinyMCE 编辑器中,我启用了 Advanced Lists 插件,它允许自定义列表项的列表样式类型(例如 <li style="list-style-type: lower-alpha">
)。
当我提交带有修改列表样式的 post 时,list-style-type
声明被删除,但其他 CSS 声明就可以了(例如 text-align
).
查看 Wordpress 源代码,CSS 正在被 kses.php
中的 safecss_filter_attr()
函数过滤。在 safecss_filter_attr()
中,我可以看到一组 CSS 声明。如果我将 list-style-type
添加到该数组,我就可以保存我的 post,并且 list-style-type
不再被过滤掉。
但是,编辑 Wordpress 源代码是不可维护的,因为它最终会在升级 Wordpress 时被覆盖。所以,我的问题是:如何防止 Wordpress 以可维护的方式过滤掉 list-style-type
CSS 声明?
您正在编辑的数组实际上是作为参数传递给 'safe_style_css'
过滤器的。 'safe_style_css'
的 return 值存储在 $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=