2011-08-22 139 views
4

HIO里面WordPress的功能,加载Zend框架

所以我有一个使用Zend框架的MVC(www.site.com),和一个单独的博客在WordPress设立(一个网站www.site.com/博客)在同一台服务器上,但我希望能够在各种页面上使用Wordpress功能从wordpress中提取帖子。

目前,web服务器DocumentRoot是/httpdocs/publicpublic包含一个符号链接/httpdocs/blog(我有有FollowSymLinks)

所有请求都是通过htaccess的规则,要么重定向到的httpdocs /公/ index.php文件(然后加载Zend的东西)或者一个普通的文件/其它区域路由不在Zend应用程序中。

WordPress中的示例代码是使用以下命令:

define('WP_USE_THEMES', false); 
require(APPLICATION_PATH .'/../blog/wp-blog-header.php'); 

但是......这只是试图把我从site.com/page重定向到site.com/page/wp-admin/install.php(不存在的,所以我得到一个“此页面重定向的方式永远不会完成'来自Firefox的错误,即使site.com/blog设置完好并且工作正常。由于某种原因,它似乎并不认为它是(可能是因为路径问题.. )

有谁知道我该如何解决这个问题?

注意:目前我只是查询wordpress数据库,但这不能正常工作,因为它没有正确格式化发布内容。

+0

“APPLICATION_PATH”包含什么?重定向何时完全发生?就我所知,包含头文件应该永远不会触发重定向。 –

+1

您是否创建了'wp-config.php'并从引导程序中加载它?如果没有,WordPress可能无法找到你的数据库并尝试创建一个。 – adlawson

+0

'APPLICATION_PATH'是我网站的根路径,即'/ var/www/vhosts /.../ httpdocs/public /'。我也可以file_get_contents那个文件,所以这很好(当我回应它们时,WP中的路径很好)......当它认为没有安装时,它会触发一个头部重定向,我相信?重定向发生在我加载页面时。它实际上并不工作,因为它应该是site.com/blog/wp-admin/install.php INSTEAD OF site.com/page/wp-admin/install.php ...它很奇怪! – Benno

回答

3

这是一个已知的问题(在写入时与WP 3.2.1测试): http://wordpress.org/support/topic/calling-wp-blog-headerphp-from-inside-a-php-function

解决方案是:

避免包括任何类别的方法或函数内的WordPress的核心。如果仍然无效,请检查debug_backtrace()的内容,看看您是否真的处于全球范围。

的解释:

的WordPress设置一些变量初始化过程中(直接分配,不使用$ GLOBALS)。如果它未在全局范围上初始化,则这些变量属于当前函数或方法范围。结果是这些变量不能被wordpress的核心功能所接受,因为它们依赖于global关键字。

3

Benno,

我想我找到了解决这个问题的方法。 azkotoki是对的,它包括wp-blog-header.phpwp-load.php文件似乎是一个范围问题。

标题必须包含在全局范围内,否则Wordpress会感到困惑,并不认为它已安装并重定向到wp-admin/install.php

我做了我require_once通话权连同在我的Zend的应用程序的/public/目录index.php我的Zend应用require_once通话。不幸的是,这意味着即使在不必要的时候,Wordpress标题也会包含在内,但至少在工作中是这样。

...从/public/index.php ...

/** Zend_Application */ 
require_once 'Zend/Application.php'; 

/** Wordpress Application */ 
require_once 'wordpress/wp-load.php'; 

希望这会有所帮助,因为它是快把我逼疯了!

+0

我正在研究别人的项目,这对我不起作用。我得到一个像这样开始的日志堆栈跟踪:'''Warning:include_once(Requests.php):未能打开流:没有这样的文件或目录在.../library/Zend/Loader.php在线83 ''' '。任何想法为什么? – molerat