WordPress检测洪水评论函数:wp_throttle_comment_flood

AI大语言模型

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

相关函数:

AI大语言模型