我在WP上运行一个站点,在运行get_currentuserinfor()之后,它不允许我从全局变量$ current_user访问信息。
我的主题中有一个php文件(不是特定于wordpress的文件),在该文件中,有以下内容:
<?php
define('WP_USE_THEMES', false);
require('../../../wp-blog-header.php');
print_r ($current_user);
?>
然后,在wp-blog-header中,我有以下内容:
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
wp();
require_once( ABSPATH . WPINC . '/template-loader.php' );
global $current_user;
get_currentuserinfo();
}
?>
当我尝试在浏览器中访问我的php文件时,我得到以下内容: WP_User对象([data] =&gt; [ID] =&gt; 0 [id] =&gt; 0 [caps] =&gt; Array()[cap_key] =&gt; [roles] =&gt;数组()[allcaps] =&gt; Array()[first_name] =&gt; [last_name] =&gt; [filter] =&gt;)
我很感激你们所有的帮助!
修改
当我在Safari&amp;中访问该文件时Firefox登录后,它正常工作。但由于某种原因(这是我开发的)不在Chrome中。我尝试在Chrome中清除所有浏览器数据,但仍然没有运气。
答案 0 :(得分:1)
在您自己的PHP文件中,确保将$ current_user定义为全局。
<?php
define('WP_USE_THEMES', false);
global $current_user; # <-- Add this
require('../../../wp-blog-header.php');
print_r ($current_user);
?>
答案 1 :(得分:1)
它允许您访问$ current_user,因为它显示为对象
WP_User Object ( [data] => [ID] => 0 [id] => 0 [caps] => Array ( ) [cap_key] => [roles] => Array ( ) [allcaps] => Array ( ) [first_name] => [last_name] => [filter] => )
确保您在尝试访问此文件时已登录