【问题标题】:Wordpress and AJAX - includeing wp-blog-header breaks the callWordpress 和 AJAX - 包含 wp-blog-header 会中断通话
【发布时间】:2011-01-13 00:41:50
【问题描述】:

我的 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 文件,问题就会发生。

【问题讨论】:

  • 我认为您应该尝试 $("#container").load("ajaxcalls.php") 将数据直接加载到 div 中,您说当您访问页面时看到内容,这告诉我 "id=" + ID 导致数据改为直接登陆页面时不发送POST数据。
  • ajaxcalls.php 文件无论如何都会获取所有的 wordpress 帖子,但是如果您将 ID 传递给它,它只会返回您想要的帖子。这就是我收到 POST 数据返回的原因。
  • 你是如何触发 change_event() 的? ajaxcalls.php 的完整 URL 是什么?
  • 我已经更新了帖子。它是使用将帖子 ID 设置为链接上的 ID 的链接触发的
  • 您有任何错误吗?错误报告是否开启?

标签: php ajax wordpress


【解决方案1】:

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

【讨论】:

  • 那么肯定是有错别字左右。有趣的部分:wp-blog_header.php 除了加载 wp-load.php,实例化 wordpress 然后加载 template-loader.php
  • wp-load 是在加载主题等时包含 WP 的正确方法。博客标题没有。
【解决方案2】:

使用这个。它正在本地主机上运行,​​我希望它也适用于实时服务器。

  1. 首先获取你站点根目录的文件夹名称

$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:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 2018-09-03
    • 1970-01-01
    • 2013-08-14
    • 2016-02-24
    • 1970-01-01
    相关资源
    最近更新 更多