我正在处理一个主题,当我使用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标记。
以上只是一个场景。这种情况有很多。处理这种情况的可能方法是什么。非常感谢。
最合适的回答,由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>\');