实际上,如果您允许在注释中使用各种短代码,您不知道会得到什么效果。如果您安装了功能强大的短代码(可能在不知情的情况下,作为您不使用的功能),它甚至可能成为一个安全问题。所以,诀窍是有选择地允许某些短代码。首先,让我们将过滤器添加到get_comment_text
(不包括comment_text
这也会影响您的评论提要)。
add_filter (\'get_comment_text\',\'wpse334485_filter_shortcodes\',10,3);
现在,我们必须确保此过滤器将仅应用库过滤器。也就是说,我们需要从注释中除去除库短代码之外的所有短代码。我们开始吧:
function wpse334485_filter_shortcodes ($comment_text, $comment, $args) {
$comment_text = strip_shortcodes ($comment_text);
return do_shortcode ($comment_text);
}
上面的代码将删除所有短代码,因此它不完整。幸运的是
strip_shortcodes
函数有一个过滤器,允许您影响删除哪些标记。这是:
add_filter (\'strip_shortcodes_tagnames\',\'wpse334485_allow_gallery_shortcode\',10,2);
function wpse334485_allow_gallery_shortcode ($tags_to_remove, $comment_text) {
return array (\'[gallery]\');
}
请注意,我没有测试此代码,因此可能需要进行一些调试。