提交重复评论后重定向

时间:2021-06-18 作者:UserUser-name

有时,在发布评论时,会出现重复的评论(托管非常繁忙)。im使用add_filter(\'comment_flood_filter\', \'__return_false\');

如何不显示“;“检测到重复注释”;但是重定向到post?不向数据库添加重复注释。

换句话说,只计算一条评论,如果找到相同的评论,则重定向到帖子。

1 个回复
最合适的回答,由SO网友:Paul G. 整理而成

此答案允许您重定向回原始帖子,而不是die正在处理洪水消息。它是一个PHP类,而不仅仅是一个简单的函数。您可以将其复制粘贴到functions.php 按原样设置,或以任何方式设置它以管理自定义代码。

假设PHP 5.3+,它还包含您原来的问题提到的重复注释代码,但后来您将其编辑掉了。您可以通过删除包含add_action( \'comment_duplicate_trigger, ...

class Handle_Comment_Flood {

    private $comment_post_id;

    public function __construct() {
        add_filter( \'preprocess_comment\', [ $this, \'capture_post_id\' ], 10, 1 );

        add_action( \'comment_flood_trigger\', [ $this, \'handle_redirect\' ], 0, 0 );
        add_action( \'comment_duplicate_trigger\', [ $this, \'handle_redirect\' ], 0, 0 );
    }

    public function capture_post_id( $comment ) {
        $this->comment_post_id = isset( $comment[ \'comment_post_ID\' ] ) ? $comment[ \'comment_post_ID\' ] : 0;
        return $comment;
    }

    public function handle_redirect() {
        if ( !empty( $this->comment_post_id ) ) {
            wp_safe_redirect( get_permalink( get_post( $this->comment_post_id ) ) );
            die();
        }
    }
}

new Handle_Comment_Flood();

相关推荐

发布POST时未调用post.php AJAX请求

我正在使用transition_post_status 处理正在发布的帖子。我在WordPress的两个安装之间发现了不一致的行为,我已经跟踪到了从post compose页面本身发出的AJAX调用。以下是我在两次安装中将帖子从草稿转换为发布时提出的请求:如您所见,对post的AJAX调用。在第二个示例中,没有生成php。事实证明$post 对象在内部处于不同的状态transition_post_status 通过post呼叫时挂断。php,这就是为什么我的代码只在第一次安装时起作用。我需要理解的是,为什