WordPress默认每个6个月就会让站长确认一下管理员电子邮箱地址,然后有些站长想要禁用这个功能或者修改检查频率,都会用到这个admin_email_check_interval过滤钩子。下面boke112百科就跟大家说一说admin_email_check_interval的参数及应用示例。

一、admin_email_check_interval的参数说明
apply_filters( 'admin_email_check_interval', int $interval )
筛选将用户重定向到管理员电子邮件确认屏幕的时间间隔,如果返回 (0),则不会重定向用户。
参数只有一个$interval(int整数),间隔时间,以秒为单位,默认值是6个月(6 * MONTH_IN_SECONDS)。
源代码在wp-login.php文件第639行代码中(WordPress 6.4.2版本),具体如下图所示:

二、admin_email_check_interval的应用示例
1、禁用管理员邮件验证功能
// 禁用WordPress管理员邮件验证
add_filter( 'admin_email_check_interval', '__return_false');
2、修改管理员邮件验证功能的检查频率
// 修改WordPress管理员邮件检查频率为1年
add_filter( 'admin_email_check_interval', function( $interval ) {
return YEAR_IN_SECONDS;
} );
上述代码中的YEAR_IN_SECONDS就表示1年,如果想要修改为2年,只需要修改为2*YEAR_IN_SECONDS即可。
除了可以修改为YEAR_IN_SECONDS外,还可以修改为MINUTE_IN_SECONDS(1分钟)、HOUR_IN_SECONDS(1小时)、DAY_IN_SECONDS(1天)、WEEK_IN_SECONDS(1周)、MONTH_IN_SECONDS(1月),而且还可以自行乘以某个数,比如10个月,即是10*MONTH_IN_SECONDS。
3、将管理员电子邮件验证限制为特定用户
// 限制允许验证管理电子邮件的用户
add_filter( 'admin_email_check_interval', function( $interval ) {
if ( in_array( $_POST['log'], array( '{{username}}' ) ) ) {
return false;
} else {
return $interval;
}
} );
请务必将 {{username}} 替换为应提供电子邮件验证的特定用户。可以通过添加数组元素来指定其他用户。此处指定的用户仍需要具有manage_options功能。
4、保存常规设置时重置管理员电子邮件有效期
// 保存常规设置时重置管理员电子邮件有效期
add_action( 'load-options.php', function() {
add_action( 'admin_action_update', function() {
if ( strpos( wp_get_referer(), 'options-general.php' ) !== false ) {
$admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS );
update_option( 'admin_email_lifespan', time() + $admin_email_check_interval );
}
});
});
以上代码的功能就是,当任何用户在WordPress后台的“设置 – 常规”中点击【保存更改】按钮,都会重置管理员电子邮件的生命周期。
















桂公网安备 45010502000016号