首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除esc_html

删除esc_html
EN

Stack Overflow用户
提问于 2017-05-27 06:59:20
回答 1查看 2K关注 0票数 0

是否可以从输出中删除esc_html,以便将任何HTML添加到自定义字段,即HTML中的链接?

代码语言:javascript
运行
复制
<a href="https://example.com">example.com</a>

下面是我的PHP代码:

代码语言:javascript
运行
复制
esc_html( get_post_meta($post->ID, $key, true) ) );

我遇到的问题是,PHP中没有添加过滤器,所以我无法修改输出。

也许有一个jQuery解决方案什么的。

当我修改插件中的代码时,它可以工作,但这不是未来的证据。

代码语言:javascript
运行
复制
 get_post_meta($post->ID, $key, true) );

编辑:这是HTML源代码

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-27 07:12:40

我猜你用wordpress。您不应该通过绕过验证来信任您的用户。但除了esc_html,还有其他选择。

看看数据验证,更具体地说,wp_kses家族函数。

例如,wp_kses()函数接受三个参数(全班在这里):

  • content - (string)内容通过kses过滤
  • allowed_html -一个数组,其中每个键都是一个允许的HTML元素,值是该元素的允许属性数组。
  • allowed_protocols -可选。允许在链接中使用协议(例如http、mailto、feed等)

因此,wp_kses()是一个非常灵活的函数,允许您从标记中删除不想要的标记,或者仅仅是不想要的属性。

示例:

代码语言:javascript
运行
复制
$content = "<em>Click</em> <a title='click for wp.tuts+' href='http://wp.tutsplus.com'>here</a> to visit <strong> wptuts+ </strong>";

echo wp_kses( $content, array(
    'strong' => array(),
    'a' => array('href')
) );

// Prints the HTML "Click <a href='http://wp.tutsplus.com'>here</a> to visit <strong> wptuts+ </strong>":
Click <a href="http://wp.tutsplus.com">here</a> to visit <strong> wptuts+ </strong>

注意:不过要小心。如文档中所指定的,“kses系统可以是资源密集型的”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44213965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档