【发布时间】:2011-08-14 22:28:04
【问题描述】:
我在 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 Object ( [data] => [ID] => 0 [id] => 0 [caps] => Array () [cap_key] => [roles] => Array () [allcaps] => Array () [ first_name] => [last_name] => [filter] => )
如果您能提供任何帮助,我将不胜感激!
编辑
当我在 Safari 和 Firefox 中访问该文件时,在我登录后,它工作正常。但由于某种原因不在 Chrome 中(这是我开发的)。我尝试在 Chrome 中清除所有浏览器数据,但仍然没有成功。
【问题讨论】:
-
问一个显而易见的问题:检查输出时您是否登录了 Wordpress?
-
嘿,约翰,哈哈——是的,我是!在我的 index.php 页面上,我有条件查看用户是否已登录。如果是这样,它会显示一个“编辑您的个人资料”链接,单击该链接后,我会转到 wp-admin/profile.php 页面,而无需需要登录。
-
这很奇怪——在 Safari 和 Firefox 中测试后,它运行良好,但 Chrome 仍然显示那个空对象。请参阅上面的编辑...