【问题标题】:I can't access any info in $current_user我无法访问 $current_user 中的任何信息
【发布时间】: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 仍然显示那个空对象。请参阅上面的编辑...

标签: php wordpress


【解决方案1】:

在您自己的 PHP 文件中,确保 $current_user 被定义为全局。

<?php
define('WP_USE_THEMES', false);
global $current_user; # <-- Add this
require('../../../wp-blog-header.php');

print_r ($current_user);
?>

【讨论】:

  • 您好,感谢您尝试提供帮助,但这并没有改变任何事情。不过,我很感激你的时间!
  • 嗯,这是我认为的问题的一部分。在 wp-blog-header.php 中试试这个,删除 if (!isset($wp_did_header))。只需致电global $current_user; get_currentuserinfo();。看看这是否有效。我的猜测是该函数没有在该文件中被调用。
  • 我将global $current_user; get_currentuserinfo(); 从 IF 语句中取出,看看它是否会返回任何内容,但仍然 - 没有运气。嗯。
【解决方案2】:

它允许您访问 $current_user,因为它显示为一个对象

 WP_User Object ( [data] => [ID] => 0 [id] => 0 [caps] => Array ( ) [cap_key] => [roles] => Array ( ) [allcaps] => Array ( ) [first_name] => [last_name] => [filter] => )

确保您在尝试访问此文件时已登录

【讨论】:

  • 嗨,这是有道理的。您的回复让我思考,我在其他一些浏览器中对其进行了测试。出于某种原因,Chrome 很奇怪(firefox 和 safari 都运行良好)。我清除了 Chrome 中的所有数据,但仍然不确定发生了什么。不过,感谢您的帮助!
  • 如果我帮助了你,请帮助我:accept my answer(如果你不确定如何操作,请点击该链接)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多