2011-08-22 178 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