Wordpress和AJAX - 包含wp-blog-header打破了这个电话

时间:2011-01-13 00:41:51

标签: php ajax wordpress

我的Wordpress主题文件夹中有一个ajax.php文件,这在DEV服务器上运行正常。但是,当我将它移动到另一台服务器时,我写的脚本不再有效......奇怪!

我现在回过头来尝试找到问题,但最烦人的是因为同一个版本在另一台服务器上工作了?!

这是代码(它的价值......)

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调用的成功函数。

非常感谢任何帮助

干杯!

汤姆

编辑:我正在使用以下方法触发change_event:

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

我还更新了change_event()函数以反映我正在使用的那个而不是之前使用的调试。

只要我添加wp-blog-header.php文件就会出现问题。

2 个答案:

答案 0 :(得分:2)

诀窍是包括 wp-load.php 而不是 wp-blog-header.php

答案 1 :(得分:0)

使用它。它正在使用localhost,我希望它也适用于实时服务器。

  1. 首先获取您网站根目录的文件夹名称
  2. $folder = substr(substr($_SERVER["REQUEST_URI"],1), 0, strpos(substr($_SERVER["REQUEST_URI"],1), "/"));

    1. 然后你可以使用$ _SERVER [“DOCUMENT_ROOT”],$ folder和wp-blog-header.php来获取ajax的url:
    2. $ajax_url = realpath($_SERVER["DOCUMENT_ROOT"]).'/'.$folder.'/wp-blog-header.php';