身份验证期间的IP地址验证-仅针对选定用户authenticate 在身份验证期间,筛选并验证给定用户的IP地址。
用户可以看到IP地址无效错误,如下所示:

/**
* Validate IP Address During Authentication - For A Given User
*/
add_filter( \'authenticate\', function( $user )
{
// Adjust to your needs:
$allowed_user_ip = \'127.0.0.1\';
$ip_restricted_user_id = 1;
// Current user\'s IP address
$current_user_ip = isset( $_SERVER[\'REMOTE_ADDR\'] ) ? $_SERVER[\'REMOTE_ADDR\'] : null;
// Nothing to do for valid IP address
if( $current_user_ip === $allowed_user_ip )
return $user;
// Nothing to do for users that are not IP restricted
if(
$user instanceof \\WP_User
&& $user->ID > 0
&& $ip_restricted_user_id != $user->ID
)
return $user;
// Add an \'Invalid IP address\' error
if( is_wp_error( $user ) )
$user->add(
\'invalid_ip\',
sprintf(
\'<strong>%s</strong>: %s\',
esc_html__( \'ERROR\', \'mydomain\' ),
esc_html__( \'IP address is invalid.\', \'mydomain\' )
)
);
// Create a new \'Invalid IP address\' error
else
$user = new WP_Error(
\'invalid_ip\',
sprintf(
\'<strong>%s</strong>: %s\',
esc_html__( \'ERROR\', \'mydomain\' ),
esc_html__( \'IP address is invalid.\', \'mydomain\' )
)
);
return $user;
}, 100 );
这里我们使用100的优先级,因为这些默认回调:
add_filter( \'authenticate\', \'wp_authenticate_username_password\', 20, 3 );
add_filter( \'authenticate\', \'wp_authenticate_email_password\', 20, 3 );
add_filter( \'authenticate\', \'wp_authenticate_spam_check\', 99 );
应该可以扩展它来处理一组用户或给定的用户角色。