我正在开发一个自定义wordpress登录/注册.我已经尝试了几乎所有我在网上看到过的东西,但在尝试设置当前用户时似乎没有任何效果.
我已经简化了脚本中的代码,以使其更清晰:
https://codex.wordpress.org/Function_Reference/wp_set_current_user
<?php
include_once($_SERVER['DOCUMENT_ROOT']."/wp-config.php");
include_once($_SERVER['DOCUMENT_ROOT']."/wp-includes/registration.php");
include_once($_SERVER['DOCUMENT_ROOT']."/wp-includes/user.php");
include_once ($_SERVER['DOCUMENT_ROOT']."/"."db_connect.php");
$user_id = 8;
$user = get_user_by( 'id', $user_id );
if( $user ) {
$curr_user= wp_set_current_user( $user_id, $user->user_login );
print_r($curr_user); // This trace is showed below.
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login );
}
?>
Run Code Online (Sandbox Code Playgroud)
在这里,我展示了看起来像一切按预期工作的跟踪:
WP_User Object ( [data] => stdClass Object ( [ID] => 8 [user_login] => email [user_pass] => **********************. [user_nicename] => email [user_email] => email@gmail.com [user_url] => [user_registered] => 2015-05-06 11:23:13 [user_activation_key] => [user_status] => 0 [display_name] => username ) [ID] => 8 [caps] => Array ( [subscriber] => 1 [bbp_participant] => 1 ) [cap_key] => wp_capabilities [roles] => Array ( [0] => subscriber [1] => bbp_participant ) [allcaps] => Array ( [read] => 1 [level_0] => 1 [spectate] => 1 [participate] => 1 [read_private_forums] => 1 [publish_topics] => 1 [edit_topics] => 1 [publish_replies] => 1 [edit_replies] => 1 [assign_topic_tags] => 1 [subscriber] => 1 [bbp_participant] => 1 ) [filter] => )
Run Code Online (Sandbox Code Playgroud)
无论如何,当我回到wp_site时,我还没有登录.有任何想法吗?
谢谢.
小智 6
试试这个代码
$user_id = 8;
$user = get_user_by( 'id', $user_id );
if( $user ) {
$curr_user= new WP_User( $user_id , $user->user_login );
// print_r($curr_user); // This trace is showed below.
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2151 次 |
| 最近记录: |