You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让自定义字段支持WordPress/WooCommerce默认编辑器的所有标准标签?

解决方案

要让自定义编辑器的HTML过滤规则和WordPress/WooCommerce默认编辑器完全一致,无需手动逐个添加标签,同时保证安全性,可以直接使用WordPress内置的标签集合替代单独调用wp_kses_post。

修改后的代码

将原来的保存代码替换为:

update_post_meta( $post_id, '_cost_performance', wp_kses( $_POST['_cost_performance'], wp_kses_allowed_html( 'post' ) ) );

原理说明

  • wp_kses_allowed_html('post')会返回WordPress默认文章编辑器允许的所有标准HTML标签及对应属性的数组,其中包含<br>、&nbsp;、<strong>等你需要的标签。
  • wp_kses函数会基于这个数组对内容过滤,自动移除不安全的标签和属性,既满足标准标签的支持需求,又能保证内容安全。

关于wp_kses_post的补充

wp_kses_post本质是wp_kses($data, wp_kses_allowed_html('post'))的封装,但如果站点有其他代码通过过滤器修改了默认的post标签规则,可能导致过滤结果不符合预期。直接调用wp_kses并传入wp_kses_allowed_html('post'),能确保过滤规则和默认编辑器完全一致。

为什么不适用esc_html

esc_html会转义所有HTML字符,导致标签以纯文本形式输出,无法在前端渲染,因此不符合保留合法HTML并生效的需求。


内容的提问来源于stack exchange,提问作者Adam Luper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:45:02