2011-01-13 51 views
0

我在我的Wordpress主題文件夾中有一個ajax.php文件,並且這在DEV服務器上工作正常。但是,當我將它移到另一臺服務器時,我寫的腳本不再有效......奇怪!WordPress和AJAX - 包含wp-blog-header打電話

我現在正在回滾嘗試找到問題,但它最煩人,因爲相同的版本在另一臺服務器上工作?!

下面的代碼(什麼它的價值...)

JavaScript調用:

function change_event(ID){ 
    //alert("ID: "+ID); 
    $.post('wp-content/themes/muni/ajaxcalls.php', 
    { id: ID }, 
    function(data){ 
     alert('complete: '+data); 
     //$('#showingevent').html(data); 
    });  
    } 

ajaxcalls.php

require_once("../../../wp-blog-header.php"); 
global $more; 

在這一點上,它打破。包括我在require之後編寫的代碼沒有意義。如果我評論這一行,下面的代碼工作。

如果我直接瀏覽到ajaxcalls.php文件,我會得到我期待的結果,但它不會反饋到ajax調用的成功函數。

任何幫助將不勝感激

乾杯SO!

湯姆

編輯:我使用這個發射change_event:

$('.eventoption A').click(function(ev){ 
    ev.preventDefault(); 
    change_event($(this).attr('id')); 
    clearInterval(timer); 
    }); 

我還更新了change_event()的功能來體現,我使用而非調試一個我之前使用過。

只要我包含wp-blog-header.php文件就會出現問題。

+0

我想你應該嘗試`$(「#集裝箱」)。負載(「ajaxcalls.php」)`,當你訪問你看到的內容頁面,告訴我可以直接加載數據到DIV,你說當您直接登陸頁面時,``id =「+ ID`導致數據被更改,因爲您沒有發送POST數據。 – RobertPitt 2011-01-13 00:46:45

+0

ajaxcalls。PHP文件無論如何都會獲得所有WordPress的帖子,但是如果你傳遞一個ID給它,它只會返回你想要的帖子。這就是爲什麼我用POST數據得到回報。 – Tisch 2011-01-13 00:49:29

回答

2

訣竅是包括WP-load.php代替WP-博客 - 的header.php

0

使用本。它在本地主機上工作,我希望它也能用於活動服務器。

  1. 首先讓您的網站

$folder = substr(substr($_SERVER["REQUEST_URI"],1), 0, strpos(substr($_SERVER["REQUEST_URI"],1), "/"));

  1. 的根目錄下的文件夾名稱,然後你可以使用$ _ SERVER [ 「DOCUMENT_ROOT」],$阿賈克斯網址文件夾和wp-blog-header.php像這樣:

$ajax_url = realpath($_SERVER["DOCUMENT_ROOT"]).'/'.$folder.'/wp-blog-header.php';