Wordpress验证过滤器

时间:2010-01-20 14:45:27

标签: wordpress-theming wordpress

我正在尝试覆盖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

1 个答案:

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

希望这可以帮助那些人

相关问题