转义包含html标记的文本时出现问题

时间:2017-12-28 作者:Shiva Acharjee

我正在处理一个主题,当我使用NS主题检查插件检查我的主题是否有错误和警告时,我收到了很多这样的警告

警告:下一步应该是转义函数(有关“数据验证”,请参阅Codex)

我完全知道,在任何html中使用之前,我需要先转义数据。但我的问题就在这里。在许多情况下,字符串由html和变量(已转义的变量)组成。例如

  echo get_category_parents($ID, TRUE, \' </li>\', FALSE);
get\\u category\\u parents()返回

<a href="link_to_category">Catgeory</a> 
现在当我试图逃离整条线时

echo esc_html(get_category_parents($ID, TRUE, \' </li>\', FALSE),\'default\');
整个html标记被视为一个字符串。浏览器无法将其识别为有效的html标记。

以上只是一个场景。这种情况有很多。处理这种情况的可能方法是什么。非常感谢。

1 个回复
最合适的回答,由SO网友:kierzniak 整理而成

要转义html内容,可以使用wp_kses 作用

$allowed = array(
    \'li\' => array(),
    \'a\' => array(
        \'href\' => true,
    ),
);

echo wp_kses(\'<li><a href="#" target="_blank">Category</a></li>\', $allowed);
如果不想传递允许的数组,可以对中使用的帖子内容使用默认WordPress数组wp_kses_post 作用

echo wp_kses_post(\'<li><a href="#" target="_blank">Category</a></li>\');

结束

相关推荐