引导WordPress多站点外站-无$wpdb

时间:2012-01-06 作者:dragonmantank

我正在为一个系统开发一个插件,将Wordpress用作身份验证后端,这样我就可以在另一个应用程序中使用我现有的Wordpress用户。该插件在单网站模式下运行时效果很好:

include /path/to/wordpress/wp-config.php
global $wpdb;
// SQL and code to select user and compare entered passwords
我需要这对Wordpress多站点安装以及工作。当我拉入wp配置时。对于MS站点,我最终遇到以下错误:

Fatal error: Call to a member function set_prefix() on a non-object in /path/to/wordpress/wp-includes/ms-settings.php on line 126
在第126行,WP试图针对$wpdb设置表前缀,但由于某些原因,此处不存在$wpdb。我运行了xdebug,创建了$wpdb,但没有ms设置。php没有看到它。我可以通过添加以下内容来解决此问题:

global $wpdb;
就在第126行之前,它可以工作,但我不想修改核心Wordpress代码。有没有更好的方法来引导Wordpress?

3 个回复
最合适的回答,由SO网友:prettyboymp 整理而成

您需要包括wp-load.php, 不是wp-config.php.

根据您的操作方式,您可能还需要设置$_SERVER 变量,如果它们尚未设置为阻止WordPress尝试重定向您。例如:

$_SERVER = array(
  "HTTP_HOST" => "http://example.com",
  "SERVER_NAME" => "http://example.com",
  "REQUEST_URI" => "/",
  "REQUEST_METHOD" => "GET"
);

SO网友:Mackstar

我认为您正在经历的是,您试图从一个无法访问全局范围的方法、函数或回调内部加载Wordpress。

如果Wordpress在此之外加载-在我的情况下,运行时没有错误。

SO网友:Dima L.

需要申报$wpdb 首先是全局,然后包括wp负载。php:

global $wpdb;
require_once(\'/path/to/wordpress/wp-load.php\');

结束

相关推荐

在使用MultiSite时,如何从外部脚本加载WordPress?

Possible Duplicate:Using WordPress functions on other sites 我有一个外部脚本,需要加载WordPress才能访问WordPress功能。在过去,我通过包含wp负载成功地做到了这一点。php。但是,在使用多站点时,这不起作用。它似乎被记录为一个bughere.是否有人有任何变通方法或解决方案?