WordPress钩子admin_email_check_interval的参数说明和应用示例

WordPress国产主题推荐

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

WordPress钩子admin_email_check_interval的参数说明和应用示例-第1张-boke112百科(boke112.com)

一、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版本),具体如下图所示:

WordPress钩子admin_email_check_interval的参数说明和应用示例-第2张-boke112百科(boke112.com)

二、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后台的“设置 – 常规”中点击【保存更改】按钮,都会重置管理员电子邮件的生命周期。

参考资料

文章创作不易,期待您的评分

本文地址:https://boke112.com/article/p11811.html

版权声明:本文内容来源于互联网资源,由 boke112百科 整理汇总!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu