如果是使用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