有时,在发布评论时,会出现重复的评论(托管非常繁忙)。im使用add_filter(\'comment_flood_filter\', \'__return_false\');
如何不显示“;“检测到重复注释”;但是重定向到post?不向数据库添加重复注释。
换句话说,只计算一条评论,如果找到相同的评论,则重定向到帖子。
有时,在发布评论时,会出现重复的评论(托管非常繁忙)。im使用add_filter(\'comment_flood_filter\', \'__return_false\');
如何不显示“;“检测到重复注释”;但是重定向到post?不向数据库添加重复注释。
换句话说,只计算一条评论,如果找到相同的评论,则重定向到帖子。
此答案允许您重定向回原始帖子,而不是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();
我正在使用transition_post_status 处理正在发布的帖子。我在WordPress的两个安装之间发现了不一致的行为,我已经跟踪到了从post compose页面本身发出的AJAX调用。以下是我在两次安装中将帖子从草稿转换为发布时提出的请求:如您所见,对post的AJAX调用。在第二个示例中,没有生成php。事实证明$post 对象在内部处于不同的状态transition_post_status 通过post呼叫时挂断。php,这就是为什么我的代码只在第一次安装时起作用。我需要理解的是,为什