我有一个基于WordPress构建的图像共享网站,最近我有很多机器人注册用户并创建一个垃圾邮件帖子,其中包含指向各个网站的链接。
安装WP-reCAPTCHA后,数字已经减少,但每小时左右仍有“攻击”。
我正在尝试以编程方式处理此问题,方法是挂钩到wp_insert_post_data(每当保存帖子/修订版时调用它)。我检查帖子数据,如果它包含一个链接,我删除帖子的内容并将状态设置为草稿,以便它不会被发布。
但从后端删除垃圾邮件用户和帖子仍然是一件麻烦事。
是否有一个更好的钩子我可以用来阻止保存甚至发生的帖子?即我可以拒绝保存帖子的电话吗?
以下是我目前正在使用的代码:
function block_spam_posts($data, $postarr) {
// if the post contains a link, set it to draft status
$post_content = $data['post_content'];
if (strpos($post_content,'http') !== false) {
$data['post_content'] = 'Post data removed by anti-spam measures.';
$data['post_status'] = 'draft';
}
}
add_filter('wp_insert_post_data', 'block_spam_posts',1,2);
感谢您的帮助。
答案 0 :(得分:0)
我在这里找到了答案:
我正在使用正确的钩子。我需要做的就是在满足垃圾邮件标准后致电wp_die()
。
希望这有助于其他人。