我正在尝试覆盖Wordpress的'wp_authenticate函数(不修改核心文件,主要是pluggable.php),但是我不确定我是否正确地使用它。有两个很好的引用(见下文),但它们没有明确说明要做什么,以防止在满足某些条件的情况下登录。
简而言之,我正在尝试阻止未激活其帐户的注册用户。我已经在usermeta表中创建了一个具有md5唯一ID的用户(附加到他们的用户ID)。我基本上试图在登录时检查usermeta表中的“activation_key”值,如果存在值,我想阻止登录发生。
验证过滤器似乎正是我需要的,但在修改它并将其放入我的functions.php文件后,它似乎不起作用!登录按平常进行。
参考文献:
How do I hook into the Wordpress login system to stop some users programmatically?
http://willnorris.com/2009/03/authentication-in-wordpress-28
答案 0 :(得分:2)
我实际上找到了一个解决方法。
使用自定义表单,您可以使用wp_signon函数登录Wordpress。
var $creds = array();
$creds['user_login'] = 'example';
$creds['user_password'] = 'plaintextpw';
$creds['remember'] = true;
//check if user has an activation key in the usermeta table
$user = get_userdatabylogin($creds['user_login']);
if(get_usermeta($user->ID,'activation_key')) {
} else {
$procLogin = wp_signon( $creds, false );
if ( is_wp_error($procLogin) ) {
echo $user->get_error_message();
}
echo 'success!';
}
希望这可以帮助那些人