2011-08-28 92 views
3

我使用外部文件來處理WP插件中的AJAX調用。對於它iterpret WP方法,我做了下面的技巧:WordPress的 - 如何從外部文件獲取'頁'變量?

require('../../../wp-blog-header.php'); 
header("HTTP/1.1 200 OK"); 

問題是,我似乎無法得到具體的,從它的頁面狀態的變量。例如,get_query_var('page')總是回到空。 是唯一的解決方案,把Javascript插入主插件.php文件,並從那裏獲得'頁'變量,餵養​​它的腳本(它肯定應該通過鉤子)?我想避免不惜一切代價混合使用PHP和JS。

P.S.對於更大的事實,我未能檢索到該變量。不過,我仍然可以獲得最大頁碼,請撥打$q = $GLOBALS['wp_query']; $max = $q->max_num_pages;。接受的答案當然是正確的,但我相信這是一個錯誤。當我有時間時,我會問wp-hacker的朋友,希望能更新這個問題。

回答

3

如果您使用的是get_query_var('page'),那麼請確保您在調用該函數之前確實已在該頁面上運行查詢。

+0

我**通過'require('../../../wp-blog-header.php')'具有所有WP功能。看來這些函數看不到頁面上下文。 – Arnthor

+0

如果你打開PHP錯誤,你會得到什麼?那個'get_query_var'的'var_dump'是什麼? –

+0

'string''(length = 0)'。 – Arnthor

0

對評論有點長,所以我將其添加爲答案。如果它不包含解決方案,請聯繫我:

get_query_var('page')只有在運行實際查詢時纔會返回一些內容。當你直接請求你的插件PHP腳本時,肯定不是這種情況。

所以問題是,你指的是哪一種page變量?可能是$_REQUEST['page']?這只是猜測,也許你可以添加到你的問題更多關於正在發起你的AJAX調用的頁面的信息。

+0

這是包含帖子的DB查詢的變量。據我所知,所有與DB的交互被封裝到WP中的WP_Query類中,該類(該類)具有一些附加字段,具體取決於查詢的類型。就像,如果它是被提取的帖子的頁面,你可以通過閱讀適當的字段或者通過幫助者方法來獲得該頁面的實際編號。所以它肯定不是$ _REQUEST。 – Arnthor