2011-01-13 57 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';