WordPress 的“讨论设置”主要管理网站上的评论功能,包括评论的显示方式、评论审核、评论通知等。它帮助站点管理员控制用户如何评论、评论的审批流程以及如何与访客互动。主要设置包括评论默认状态、评论者信息要求、黑名单设置、邮件通知等内容。这么一看似乎也没那么重要是吧?其实不然,咱们拆开来说一说。
1. 默认文章设置
在 WordPress 的讨论设置的“默认文章设置”部分包含三个选项。其一是全局(可以在单个文章和页面中个性化设置)开启或关闭文章评论功能,允许管理员统一控制网站是否允许用户对所有文章进行讨论。另外两个是关于文章通知的设置,其中包括 Pingback 和 Trackback 的启用。
Pingback 是一种自动通知机制,当其他网站链接到你的网站时,你会收到一个通知,帮助你了解哪些外部网站引用了你的内容。而 Trackback 则是手动操作的通知机制,当你引用其他网站的文章时,你可以通过 Trackback 通知对方,促进网站之间的互动与交流。
此外,“尝试通知文章中链接的博客” 选项与 Pingback 和 Trackback 密切相关。启用该选项后,WordPress 会尝试向文章中提到的外部博客或网站发送通知,具体而言:
- Pingback:当你在文章中链接到其他网站时,WordPress 会自动向该网站发送 Pingback 通知。如果对方的网站也启用了 Pingback 功能,他们将收到你网站的通知,表明有文章链接到了他们的内容。
- Trackback:与 Pingback 类似,Trackback 也是一种通知机制,但它需要手动操作。你需要将目标博客的 Trackback URL 复制并粘贴到你的文章中,通知对方你在文章中引用了他们的内容。
简而言之,“尝试通知文章中链接的博客”选项帮助站点建立与其他博客或网站的互动与联系,增加内容的可见性和相互引用。如果启用该选项,WordPress 会自动尝试发送 Pingback 通知,而 Trackback 则需要手动操作。这三个选项让管理员能够灵活控制评论和通知机制,以适应不同类型的内容和互动需求。

2. 其他评论设置 & 分页设置
这两个选项控制了评论分页、嵌套层级和权限设置等方面。一般来说,我建议访客评论时必须输入邮箱和昵称,必要时,甚至可以要求用户注册并登录(前提是网站有良好的用户管理系统)。此外,启用控制 Cookie可以帮助访客记住之前填写过的邮箱和昵称,下次在不同页面进行评论时能够自动填充,提高用户便利性和黏性。
值得一提的是评论分页,我发现许多国外的博客往往不喜欢将评论和文章内容进行分页处理,通常一篇文章的内容非常长,用户往往需要滚动很长时间才能到底。经过我的实际测试,评论分页确实会增加数据库查询的负担,因为每次访问页面时,评论数据都需要重新加载,并且与文章正文不同,评论内容很难通过对象缓存来减少数据库压力。
此外,SEO(搜索引擎优化)方面,分页可能会影响搜索引擎对评论内容的抓取。由于评论内容分布在不同的页面中,搜索引擎可能不容易抓取到所有的评论,进而影响页面的内容完整性和排名。另一方面,长篇评论的直接展示可以增加页面内容的丰富性,从 SEO 角度看可能更有利于提升排名。
总的来说,是否启用评论分页,视乎网站的实际需求。对于评论较少的小型博客,分页可能不那么必要;但对于有大量评论的大型网站,分页则可能有效缓解服务器压力和数据库负担。仁者见仁,智者见智吧~
3. 评论邮件通知
此处设置指的是当产生评论或回复时,系统自动“发送邮件通知我”,也就是发邮件给咱在 WordPress 常规设置里面定义的管理员邮箱。在我看来,这个设置没啥用,特别是当评论多的时候,会被吵死。
而正在有意义的是:评论回复邮件通知访客,意思是,当有访客或管理员对某条评论进行回复时,系统会自动发送邮件通知原评论的作者。这使得用户能够及时了解自己的评论是否受到回应,无需频繁刷新页面或检查评论区,从而提高了互动性和用户粘性。对于网站管理员而言,这也是一个提升用户参与感和增加网站互动的好方法,能够帮助用户保持活跃度并促进社区氛围的建设。
这个功能需要额外安装插件和添加控制代码实现,以下是 Kevin's Space 正在使用的邮件模板,各位可以参考一下。
4. 访客评论审核
是否需要人工审核、包含关键词或链接需人工审核、第一次评论需审核以及禁用特定的关键词这几个选项,都是为了防止垃圾评论而设置的。实话说,WordPress 的垃圾评论问题真的是非常严重!一旦你的站点正式上线并被搜索引擎索引后,几乎就会有无数的扫描器和垃圾评论机器人开始自动发送各种推广评论和邮件。这些垃圾评论不仅数量庞大,还往往包含广告链接,扰乱网站的评论区,给用户和管理员带来很大的困扰。
启用这些设置后,可以有效减少垃圾评论的生成,尤其是第一次评论需审核的选项,可以确保新用户的评论先经过人工审核,避免自动生成的垃圾内容直接发布。此外,禁用特定的关键词功能可以帮助过滤包含不良链接或关键词的评论,进一步提高评论区的质量。
虽然这些防护措施会增加一些管理负担,但相较于垃圾评论对网站的影响,防止垃圾评论带来的好处无疑是值得的。此外,我还建议你在function.php
中添加以下这小段代码:
// 简易防垃圾评论,须包含中文字符才能提交
function filter_comment_with_chinese($commentdata) {
$pattern = '/[\x{4e00}-\x{9fa5}]/u'; // 匹配中文字符的正则表达式
if (!preg_match($pattern, $commentdata['comment_content']) || mb_strlen($commentdata['comment_content'], 'UTF-8') < 4) {
?>
<style>#error-message {font-size: 24px;font-style: italic;text-align: center;margin-top: 22vh;}#error-message a {border-bottom: 1px dotted #b10b14;color: #b10b14;padding: 0 3px;text-decoration: none;}#error-message a:hover {border-bottom: 1px solid #b10b14;}</style>
<div id="error-message">
<!-- <p style="font-size: 20px;letter-spacing:-1px;text-transform: uppercase;">Comments must be longer than 4 characters and include Chinese characters...</p>
--> <p>抱歉,评论必须包含中文字符且不少于四个字…!</p>
<p>请<a href="#" id="go-back-link" target="_blank">点击这里</a>,或等待 <span id="countdown">5</span> 秒后自动返回</p>
</div>
<script>
var countdown = 5;
var countdownInterval = setInterval(function() {
countdown--;
document.getElementById('countdown').innerHTML = countdown;
if (countdown <= 0) {
clearInterval(countdownInterval);
history.go(-1);
}
}, 1000);
document.getElementById('go-back-link').addEventListener('click', function(event) {
event.preventDefault();
history.go(-1);
});
</script>
<?php
exit;
}
return $commentdata;
}
add_filter('preprocess_comment', 'filter_comment_with_chinese');
这段代码的目的是为了防止垃圾评论,特别是针对那些简短、没有实际内容的评论。它要求所有评论必须包含至少一个中文字符,并且评论内容的长度要大于等于四个字符。如果评论不符合这些条件,评论将被直接拒绝。
具体来说,这段代码通过一个正则表达式检查评论内容是否包含中文字符,同时确保评论的字数不少于四个字符。如果不满足这些条件,系统会弹出一个错误提示,告知用户评论必须包含中文字符并且字数不少于四个。在提示信息中,用户还可以选择点击链接返回,或者在页面显示三秒后自动返回原页面。
这段代码的一个重要优点是,它有效地防止了像“牛”、“碉堡了”等简短无意义的灌水评论,同时也减少了英文、日文、俄语等非中文的垃圾评论。这种简单有效的检查不仅可以提高评论质量,还能够减轻服务器的负担,提升网站的性能和用户体验。
5. 访客头像设置
除了全局评论设置中的启用或禁用评论者头像功能外,WordPress 还允许管理员为评论者设置默认头像。当用户的邮箱地址没有设置头像时,系统会自动分配一个默认的头像。这个头像可以是经典的“陌生人”图像,也可以选择更具创意的选项,比如随机生成的抽象图案或使用 RoboHash 来生成独特的机器人头像等。这些默认头像为站点提供了更有趣的用户体验,你可以尝试不同的设置,看哪种喜欢,感受其中的乐趣。
你可能会疑惑,既然不允许用户注册,那用户是怎么设置头像的呢?其实,WordPress 是基于 Gravatar(Globally Recognized Avatar)服务来为用户提供头像的。只要用户在 Gravatar 网站上注册并关联自己的邮箱地址,系统就会自动识别并显示对应的头像。因此,即使站点没有开启用户注册功能,用户依然可以通过 Gravatar 来设置和更新自己的头像。
由于 GFW 的原因,Gravatar 服务在国内往往不稳定,常常出现 404 错误。因此,我们有必要通过代码或插件将其替换为国内镜像。你可以使用下面的代码来完全替换 Gravatar,也可以参考《将 Gravatar 头像源替换为国内镜像》这篇文章,修改 WordPress 核心代码的其中一行进行替换。
// 头像替换
if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
* 替换 Gravatar 头像为 Cravatar 头像
*
* Cravatar 是 Gravatar 在中国的完美替代方案,你可以在 https://cravatar.cn 更新你的头像
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com',
'gravatar.com',
);
return str_replace( $sources, 'cravatar.cn', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {
/**
* 替换 WordPress 讨论设置中的默认头像
*/
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['gravatar_default'] = 'Cravatar 标志';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}
if ( ! function_exists( 'set_user_profile_picture_for_cravatar' ) ) {
/**
* 替换个人资料卡中的头像上传地址
*/
function set_user_profile_picture_for_cravatar() {
return '<a href="https://cravatar.cn" target="_blank">您可以在 Cravatar 修改您的资料图片</a>';
}
add_filter( 'user_profile_picture_description', 'set_user_profile_picture_for_cravatar', 1 );
}
之前和陈仓颉 用了下pingback 好古早的。有效通知,只能wp之间似乎?