WordPress获取用户对象函数wp_set_current_user-蚂蚁资源

WordPress获取用户对象函数wp_set_current_user

如果我们想得到wordpress的某个未登录的用户数据,可以使用wp_set_current_user函数来实现。它能在不知道用户密码的情况下将用户设置为选中用户,并返回该用户对象,我们可以从用户对象中取得所有用户信息。

wp_set_current_user( int $id, string $name = '' )

通过ID或用户名改变当前对象

描述

将$id设置为NULL,并在不知道用户ID的情况下指定名称。一些WordPress功能基于当前用户,而不是基于已签名的用户。因此,它打开了对未登录的用户编辑和执行操作的能力。

参数

  • $id
    (int) (必须) 用户id
  • $name
    (string) (可选) 用户名,默认为空

返回值

(WP_User) 选择的用户对象

源码

文件位于 wp-includes/pluggable.php,在线地址:https://developer.wordpress.org/reference/files/wp-includes/pluggable.php/

function wp_set_current_user( $id, $name = '' ) {
    global $current_user;
    // If `$id` matches the current user, there is nothing to do.
    if ( isset( $current_user )
    && ( $current_user instanceof WP_User )
    && ( $id == $current_user->ID )
    && ( null !== $id )
    ) {
        return $current_user;
    }
    $current_user = new WP_User( $id, $name );
    setup_userdata( $current_user->ID );
    /**
     * Fires after the current user is set.
     *
     * @since 2.0.1
     */
    do_action( 'set_current_user' );
    return $current_user;
}

实例

请注意,设置当前用户不会登录该用户。此示例将设置当前用户并将其登录。

$user_id = 12345;
$user = get_user_by( 'id', $user_id ); 
if( $user ) {
    wp_set_current_user( $user_id, $user->user_login );
    wp_set_auth_cookie( $user_id );
    do_action( 'wp_login', $user->user_login, $user );
}

注意!运行此函数后,将影响与当前(真实)用户相关的所有内容。您必须还原真正的用户:

$original_user_id = get_current_user_id(); // For example the real user ID is 7
wp_set_current_user( 15 );
// get_current_user_id() now returns 15
// Do other stuff here...
// ...
// get_current_user_id() still returns 15
// Restore the original user.
wp_set_current_user( $original_user_id );
// get_current_user_id() now returns 7

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.antziyuan.com",如遇到无法解压的请联系管理员!

蚂蚁资源 » WordPress获取用户对象函数wp_set_current_user

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
该资源仅供学习和研究传播,大家请在下载后24小时内删除,一切关于该资源商业行为与我们无关。 请勿将该软件进行商业交易、转载等行为,该软件只为研究、学习所提供,该软件使用后发生的一切问题与本站无关。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
找不到素材资源介绍文章里的示例图片?
对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
蚂蚁资源
大家都喜欢的资源网站!
  • 47会员总数(位)
  • 793资源总数(个)
  • 3本周发布(个)
  • 0 今日发布(个)
  • 173稳定运行(天)

提供最优质的资源集合

立即查看 了解详情
升级SVIP尊享更多特权立即升级