2010-01-20 113 views
3

我目前正试图覆盖Wordpress的wp_authenticate函数(无需修改核心文件,主要是pluggable.php),但是我不确定是否正确地使用它。有两个很好的参考资料(见下文),但他们没有明确说明为了防止登录提供某些标准,应该怎么做。WordPress的验证过滤器

总之,我试图阻止没有激活其帐户的注册用户。我已经实现在usermeta表中创建一个具有md5唯一标识的用户(附加到他们的用户标识)。我基本上试图检查登录时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

玉以及我想我更近,但我似乎无法删除默认的身份验证筛选器。有什么想法吗? – st4ck0v3rfl0w 2010-01-20 21:07:44

回答

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!'; 
} 

希望这可以帮助别人那里