如果是使用wp原生评论系统直接通过钩子comment_flood_filter拦截即可

在主题function.php文件中加入以下代码:

if ( !function_exists( 'mz_comment_flood_filter' ) ){
    function mz_comment_flood_filter( $dam_it, $time_lastcomment, $time_newcomment ) {

        if( !is_admin() ) {
            if ( ( $time_newcomment - $time_lastcomment ) < MZ_COMMENT_FLOOD_TIME ) { // 间隔为10秒
                return true;
            }
            
            return false;
        }
        
    }
}
add_filter( 'comment_flood_filter', 'mz_comment_flood_filter', 10, 3 );

这个回调的大概意思是,不在后台的情况下,用当前发布的时间减去上次的时间,如果小于MZ_COMMENT_FLOOD_TIME则判定为Flood,否则什么都不做

为了方便快速控制判断时间,这里定义了一个MZ_COMMENT_FLOOD_TIME

define('MZ_COMMENT_FLOOD_TIME',     10);

ps:函数add_filter,的参数依次为:hook名,回调,优先级,参数数量


详情参考:comment_flood_filter

最后修改:2023 年 12 月 13 日
如果觉得我的文章对你有用,请随意赞赏