许多WordPress评论垃圾邮件是由机器人自动生成的。你可以使用蜜罐(honeypot)阻止垃圾评论或使用其他插件和工具来对抗垃圾评论,但更棘手的部分是阻止人们提交垃圾评论。没有意义啊!?
为什么有人会手动提交垃圾评论?
如何从评论表单中删除网站URL字段?
本文将向你展示如何从WordPress评论表单中删除网站URL字段。还将解释人们为何手动提交垃圾评论,以及如何从评论表单中删除URL字段。
为什么人们提交垃圾(SPAM)评论?
这个问题的答案是SEO。你有没有遇到过像网站上的”最佳WordPress主题”,”网上赚钱”或”MyBlogName”的评论用户?是的,这很奇怪不是吗。默认情况下,WordPress评论表单有三个字段(名称,邮箱和网站或URL)。在显示评论时,WordPress会自动将评论者的姓名与他们提供的网站URL进行超链接。这为黑帽搜索(blackhat SEO)引擎优化工作者或新手博主提供了巨大的激励,他们对垃圾评论你的网站不了解。
例如:评论者Syed Balkhi评论其他网站时,他使用了他的名字。在大多数网站上,Syed Balkhi将被链接到其网站。但如果他想操纵搜索引擎排名并获得更好的排名,如WordPress教程,WordPress视频教程等特定关键字,那么他会使用这些而不是他的名字。显然他知道的更好更多,所以他不这样做。但是很多人没有任何道德,并愿意做任何事情来获得更好的搜索引擎排名(包括垃圾邮件)。
这就是笔者要求用户在评论中加入真实姓名的原因。但是说的好并不能真正与垃圾邮件发送者合作。这就是为什么我们从WordPress评论表中完全删除了URL字段。通过这样做,我们大大减少了网站上的垃圾评论数量。无论如何,要对你的网站发表评论以增加价值的用户都会发表评论。如果有人因为没有获得反向链接而停止对你的网站发表评论,那么您首先必须质疑他们的评论意图。
如何从WordPress评论表中删除网站URL字段?
首先,你需要安装并激活禁用/隐藏评论URL插件。激活后,此插件将从你的WordPress评论表单中删除评论作者URL(网站)字段。
有些人可能想要从评论模板中删除作者URL,以便作者姓名不会链接到他们的网站。为此,你需要安装并激活Disable Comment Author Links插件。激活后,此插件将删除WordPress主题评论模板中的评论作者URL。所有批准的评论都有作者姓名,但不会链接到他们的网站。这将阻止只想发表评论的用户,以便他们可以离开他们的网站链接。
希望你觉得这篇文章很有用,希望这会减少你网站上的垃圾评论。
当然也可以添加以下代码到functions.php文件以实现移除评论作者的URL:
function wpb_disable_comment_url($fields)
{
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields','wpb_disable_comment_url');
那么现有的垃圾评论作者网址如何删除呢?
答案是删除所有不需要的链接,包括没有后续链接。
然而,如何删除所有现有的评论作者网址?
毫无疑问,有一些插件可用于执行此任务。但是,建议通过phpMyAdmin手动完成。它很容易而且非繁琐。
- 转到你的phpMyAdmin或任何允许您对数据库运行查询的SQL管理工具。
- 选择你的WordPress安装的数据库。
- 转到”SQL”选项卡。
- 输入以下任何查询。
- 如果你的表前缀不是”wp_”,请相应地进行更改。
要删除所有现有的评论网址:
UPDATE wp_comments SET comment_author_url = '';
在上面的查询中,已将URL值设置为空。所以不用担心失去你的网站评论。
删除所有评论URL除了某个链接:
UPDATE wp_comments SET comment_author_url = ''
WHERE NOT comment_author_url = 'https://www.chenlifeng.com/';
此查询将避免删除你自己发表的评论的URL。
完成激活后,此插件将删除WordPress主题评论模板中的评论作者URL。
结论:
希望本指南可以帮助你最好地减少你网站上的垃圾评论。
在 functions.PHP 中添加如下代码即可
add_filter('comment_form_default_fields', 'unset_url_field');
function unset_url_field($fields){
if(isset($fields['url']))
unset($fields['url']);
return $fields;
}
或者
add_filter('comment_form_default_fields', 'website_remove');
function website_remove($fields)
{
if(isset($fields['url']))
unset($fields['url']);
return $fields;
}