3.2.24: 评论富文本工具条(B/I/颜色/表情移入)+ kses 放行 span+style + 后台设置页标签左列竖排重排
This commit is contained in:
@@ -43,6 +43,42 @@ if (!defined('ABSPATH')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 3.2.24 富文本工具条:给访客评论放行 <span style="color:…">
|
||||
*
|
||||
* 工具条插入的三种标签里,<strong>/<em> 本来就在 WP 评论的
|
||||
* kses 白名单($allowedtags)里,不用管;<span style="color:…">
|
||||
* 不在 —— 访客提交时会被 wp_filter_kses 整个剥掉,颜色功能就白做了。
|
||||
*
|
||||
* 这里把 span(带 style / class 属性)追加进 kses 白名单。安全性:
|
||||
* 1. kses 对 style 属性的内容会再过一遍 safecss_filter_attr(),
|
||||
* 那是一份固定白名单(color、font-weight、text-align…),
|
||||
* expression()/url()/behavior() 这些危险属性一律剥掉;
|
||||
* 2. 工具条前端只生成 color 一个声明,白名单只是兜底;
|
||||
* 3. 有 unfiltered_html 权限的用户(管理员)本来就不走 kses,不受影响。
|
||||
*
|
||||
* ⚠️ 不按 context 区分:wp_filter_kses 实际传进来的 context 串
|
||||
* 在 WP 各版本间不稳定,写死 'pre_comment_user' 之类的会静默失效
|
||||
* (失效 = 标签被剥 = 功能没了但没有任何报错)。span+style 放行到
|
||||
* 任何 kses 场景都是安全的(style 内容有 safecss_filter_attr 挡着),
|
||||
* 所以对除 'strip' 外的所有 context 一律追加。
|
||||
*/
|
||||
function yang_kses_allow_span($tags, $context)
|
||||
{
|
||||
if ($context === 'strip') {
|
||||
return $tags;
|
||||
}
|
||||
if (!is_array($tags)) {
|
||||
$tags = array();
|
||||
}
|
||||
$tags['span'] = array(
|
||||
'style' => true,
|
||||
'class' => true,
|
||||
);
|
||||
return $tags;
|
||||
}
|
||||
add_filter('wp_kses_allowed_html', 'yang_kses_allow_span', 10, 2);
|
||||
|
||||
/**
|
||||
* wpDiscuz 是否在接管评论
|
||||
*
|
||||
@@ -652,6 +688,8 @@ function yang_comment_scripts()
|
||||
'tooLong' => __('评论内容太长了。', 'kratos'),
|
||||
'loading' => __('加载中…', 'kratos'),
|
||||
'noMore' => __('没有更多评论了', 'kratos'),
|
||||
'boldPlaceholder' => __('加粗文字', 'kratos'),
|
||||
'colorPlaceholder' => __('彩色文字', 'kratos'),
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user