将以下内容放入自定义插件或子主题的函数文件中:
add_action("wp_insert_comment", function() {
global $current_user;
if ( !$current_user->ID ) return;
update_user_meta( $current_user->ID, "se_last_commented", time() );
});
add_action("init", function() {
if ( "wp-comments-post.php" == $GLOBALS[\'pagenow\'] ) {
global $current_user;
if ( !$current_user->ID ) return;
$last_commented = (int) get_user_meta( $current_user->ID, "se_last_commented", 1 );
if ( !$last_commented ) return; // no time recorded
if ( (time() - $last_commented) > DAY_IN_SECONDS ) {
$date = date( "H -1-, i -2-, s -3-", DAY_IN_SECONDS - (time() - $last_commented) );
$date = str_replace( array(\'-1-\',\'-2-\',\'-3-\'), array(\'hr\',\'min\',\'sec\'), $date );
wp_die(sprintf( \'<strong>ERROR:</strong> You have <u>%s</u> left until you can be able to post a comment.\', $date ));
}
}
}, 0);
基本上,它所做的是记录用户上次发表评论的时间整数,这里的用户是指登录的WP用户,当任何用户提交评论时,WP将自动检查该用户上次发表评论的时间以及是否超过一天(
DAY_IN_SECONDS
) 然后,该过程将被允许,否则用户将看到一个死亡屏幕,在该屏幕上,他们将被告知需要等待多长时间才能发布评论。
希望这有帮助。