【问题标题】:Where should I place my php script file for AJAX request in wordpress?我应该将用于 AJAX 请求的 php 脚本文件放在 wordpress 中的什么位置?
【发布时间】:2017-09-23 19:05:52
【问题描述】:

我的主题文件夹中的索引文件中有一个表单。

我在我试图调用的同一个主题文件夹中也有一个名为 find-locations-ajax.php 的脚本。当我尝试调用脚本文件时,它会不断加载整个站点。

这是我的代码

jQuery(function($) {
$.ajax({
url:'find-locations-ajax.php',
type:'POST',
data:querystring,
success: function(msg){
}//ends success code

});//ends ajax
})//ends submit handler
});//ends ready function

第一次在 wordpress 工作,所以请放轻松。

编辑。这不适用于 ADMIN 功能

新编辑:

【问题讨论】:

标签: php jquery ajax wordpress


【解决方案1】:

您为 WordPress 做的 AJAX 有点错误。
WordPress 有一个文件来处理所有 AJAX 请求,称为 admin-ajax.php 和操作,您应该将代码绑定到该文件以处理这些请求。
我建议你阅读documentation 以获得一些理解。

【讨论】:

  • 所以我在 admin-ajax.php 文件中设置了我的函数。我进行了测试,它与您提供的文档一起运行良好。只是想知道为什么我必须使用 admin-ajax.php 文件,即使它与管理功能无关。检查我提供给您的图片。\
  • @Carlitos 这些年前当我开始为 wordpress 编码时,我也在想同样的事情,但我仍然不知道他们为什么决定这样做。这个问题可能应该发给 WP 的作者 :)
  • 所以我做了更多的测试和研究,发现如果我没有以管理员身份登录,我的 ajax 调用将无法工作。我将我的函数移动到与我发出 ajax 请求的同一主题文件夹中。我只是对 ajax 如何进行调用采用了相同的格式。
  • @Carlitos 有两个用于呼叫处理器的钩子。 wp_ajax_ 用于登录用户,wp_ajax_nopriv_ 用于未登录用户。你的电话到底是怎么不工作的?调用返回 0?你得到一些 js 错误?
  • 是的,我不知道,哈哈。我有点偏离了轨道,但它仍然有效。所以现在我将这两个文件放在同一个主题文件夹中。调用请求的代码位于 index.php 文件中,处理请求的文件称为 find-locations-ajax.php。在 find-locations-ajax.php 中,我向 Google Places API 发出请求,并在我的索引文件中显示信息。我更新了一张图片来查看。
猜你喜欢
  • 2018-03-19
  • 1970-01-01
  • 2010-12-04
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多