WordPress检测洪水评论函数:wp_throttle_comment_flood
WordPress函数wp_throttle_comment_flood()检测是否存在刷评论。该函数通过比较最后一条评论的时间戳和新评论的时间戳,判断时间差是否小于15秒,以防止评论泛滥。
wp_throttle_comment_flood( bool $block, int $time_lastcomment, int $time_newcomment ): bool
函数参数
$block
数据类型:bool (必须)
是否已经有其他逻辑阻止了评论。
$time_lastcomment
数据类型:int (必须)
最后一条评论的时间戳。
$time_newcomment
数据类型:int (必须)
新评论的时间戳。
函数返回值
布尔值,是否应该阻止评论。
函数使用示例
wp_throttle_comment_flood()函数是通过comment_flood_filter钩子运行的,检测两条评论的时间差是否小于15秒。如果需要更严格或更宽松的检测,可以自定义一个检测函数。
function bzg_comment_flood_filter($block, $time_lastcomment, $time_newcomment) {
// 如果有其他方式检测出为洪水评论,则直接返回相应检测结果
if ( $block ) {
return $block;
}
// 设置评论间隔时间为5秒
$comment_interval = 5;
// 计算新评论与最后一条评论之间的时间差
$time_difference = $time_newcomment - $time_lastcomment;
// 如果时间差小于设定的间隔时间,则阻止评论
if ($time_difference < $comment_interval) {
return true;
}
return false;
}
// 将自定义函数挂载到 comment_flood_filter 钩子
add_filter('comment_flood_filter', 'bzg_comment_flood_filter', 10, 3);
扩展阅读
wp_throttle_comment_flood()函数位于:wp-includes/comment.php
相关函数:

