【问题标题】:WordPress: Stop spam posts programmaticallyWordPress:以编程方式停止垃圾邮件帖子
【发布时间】:2014-06-03 09:27:38
【问题描述】:

我有一个基于 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);

感谢您的帮助。

【问题讨论】:

  • 也许您可以在插入并检测到垃圾邮件后立即将其删除。 wp_delete_post 呢:codex.wordpress.org/Function_Reference/wp_delete_post 你还需要获取帖子 ID
  • 转到您的网站设置菜单并进入讨论子菜单。将 cmets 设置为在之前的评论被接受后才被允许。尝试其他垃圾邮件过滤插件..
  • 我发现在 WordPress 中阻止垃圾邮件发送者的最佳选择是 WordPress 零垃圾邮件:wordpress.org/plugins/zero-spam 不需要用户完成烦人的重新验证并且非常有效。

标签: wordpress security spam-prevention


【解决方案1】:

我在这里找到了答案:

https://wordpress.stackexchange.com/questions/82354/how-can-i-hook-into-creating-a-new-post-and-execute-wp-die-before-the-post-is

我正在使用正确的钩子。一旦满足垃圾邮件的标准,我需要做的就是致电wp_die()

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-20
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2016-07-29
    • 2011-01-22
    相关资源
    最近更新 更多