不,你不应该,它已经被弃用了
我认为wp\\u signon()不能像wp\\u login()那样满足我的需要
它的功能完全相同,但有一些新功能
我读到这个在用户登录后运行,包含2个参数,其中一个是用户名。通过用户名,我可以了解他们的角色。
您仍然需要该用户名才能调用wp_login 首先,与wp_signon 它是在凭据数组中传递的,而不是直接作为参数传递。
如果您参考了文档,您会发现一个简单的例子,摘自codex:
$creds = array(
\'user_login\' => \'example\',
\'user_password\' => \'plaintextpw\',
\'remember\' => true
);
$user = wp_signon( $creds, false );
if ( is_wp_error( $user ) ) {
echo $user->get_error_message();
}
另请注意:
注意:wp\\u signon()不处理当前用户的设置。这意味着,如果在触发“init”挂钩之前调用该函数,则在该点之前,is\\u user\\u logged\\u in()将计算为false。如果需要将is\\u user\\u logged\\u in()与wp\\u signon()结合使用,则应显式调用wp\\u set\\u current\\u user()。
关于您的问题,还有一个令人困惑的问题,我应该使用wp\\u login()挂钩吗?
wp_login() 不是钩子,它是一个实际的函数,并且它是被弃用的函数。钩子并没有被弃用,混淆两者是令人困惑的
您的实际问题,也是您应该问的问题,我有一个脚本,当有人登录时,我想运行这个脚本,我如何做到这一点,以及如何获得用户角色?
通过专门询问您尝试的解决方案,您限制了您可能得到的答案的数量。
例如wp_signon 由调用wp_login, 以及wp_login 挂钩由触发wp_signon 也是:
add_action( \'wp_login\', function( $username, \\WP_User $user) {
// the user object has all the information you need, the username is probably not that useful. Anything you do via the username will just fetch the `$user` that you\'ve just been given
}, 10, 2 );
阅读此处的文档:
https://developer.wordpress.org/reference/hooks/wp_login/
我们看到以下情况:
由#由wp使用包括/用户。php:wp\\u signon()