0

过去几个小时我一直在研究,试图找到一种在 WordPress 评论中禁用 HTML 的方法。到目前为止,这个一直出现在谷歌搜索结果的顶部无数次:

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {

// convert everything in a comment to display literally
$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);

// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
$incoming_comment['comment_content'] = str_replace( "'", ''',         $incoming_comment['comment_content'] );

return( $incoming_comment );
}

// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {

// Put the single quotes back in
$comment_to_display = str_replace( ''', "'", $comment_to_display );

return $comment_to_display;

此代码不适用于最新版本的 WordPress。我还发现了更多代码,这些代码又不起作用。那么如何在 WordPress 3.6(最新版本)评论中禁用 HTML 呢?

4

2 回答 2

4

这消除了用户在评论中发布 HTML(但由于某种奇怪的原因而不是链接)的能力:

add_filter( 'pre_comment_content', 'wp_specialchars' );

这消除了用户在评论中发布链接的能力:

remove_filter('comment_text', 'make_clickable', 9);

于 2013-08-11T03:22:02.753 回答
4

要禁用评论中的 HTML 标签,请将以下代码放入您的主题中functions.php

add_filter('comment_text', 'wp_filter_nohtml_kses');
add_filter('comment_text_rss', 'wp_filter_nohtml_kses');
add_filter('comment_excerpt', 'wp_filter_nohtml_kses');
于 2013-08-11T03:37:57.433 回答