无法在安装文件夹之外获取wordpress会话用户名


Cannot get wordpress session username outside of installation folder

我的文件夹结构:

www.domain.com/myscript.php
www.domain.com/blog/wp-load.php
www.domain.com/blog/bridge.php

Bridge.php:

include('wp-config.php');
include('wp-includes/pluggable.php');
echo $current_user->user_login;

在浏览器中手动打开此文件将正确输出当前登录的用户名。问题是,我还需要myscript.php中的用户名,它在wordpressinstall之外的父文件夹中

myscript.php只是:

include("blog/bridge.php");

我已经尝试了我能想到的一切:-安装了插件"根cookie"以在安装目录之外启用cookie-如果我检查firefoxcookie,它被正确地设置为"/",而不是"/blog"-以下内容也设置为wp-config.php:define('SITECOKIEPATH','/');define('ADMIN_COOKIE_PATH','/');-尝试包含不同的wordpress核心文件-设置包括文件系统根目录在内的路径不会改变任何内容-将wordpress文件包含在myscript.php而不是bridge.php中对没有帮助

首先需要在myscripts.php文件中包含wp-load.php。包括这一个文件将"加载"所有的WordPress页面使用。基本上,所有WordPress函数和变量都可以用于该页面。

include('blog/wp-load.php');

编辑

这确实有效。。。让你的MyScript.php看起来像这样进行测试:

include( 'blog/wp-load.php');  
global $current_user;
get_currentuserinfo();
print_r($current_user);

您将获得正确的信息或一个空的WP_User对象。如果它是空的,那是因为cookie只在你的博客文件夹中有效。修改您的wp-config.php文件以更改cookie域:

https://codex.wordpress.org/Editing_wp-config.php#Set_Cookie_Domain

您实际上只需要这样做:这将确保您可以使用具有对主题和子主题挂钩的访问权限。这也将设置环境的其余部分,包括wp-config.phpwp-includes/pluggable.php

define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require ('./wp-blog-header.php');