3

我目前正在尝试覆盖 Wordpress 的 wp_authenticate 函数(不修改核心文件,主要是 pluggable.php),但是我不确定我是否以正确的方式进行操作。有两个很好的参考资料(见下文),但它们没有明确说明在满足某些条件的情况下要做什么来防止登录。

简而言之,我试图阻止尚未激活其帐户的注册用户。我已经实现了在 usermeta 表中创建一个具有 md5 唯一 ID 的用户(附加到他们的用户 ID)。我基本上是在尝试在登录时检查 usermeta 表中的“activation_key”值,如果存在值,我想阻止登录发生。

验证过滤器似乎正是我所需要的,但是在修改它并将其放入我的functions.php文件之后,它似乎不起作用!登录照常进行。

参考:

如何连接到 Wordpress 登录系统以编程方式阻止某些用户?

http://willnorris.com/2009/03/authentication-in-wordpress-28

4

1 回答 1

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

希望这可以帮助那里的人

于 2010-01-21T04:17:17.003 回答