php - AJAX 脚本的文件路径(在 Wordpress 中)

标签 php ajax wordpress variables filepath

我使用这个 jquery-ajax 脚本发送电子邮件:

    $.ajax({
        url: process.php,    
        type: "POST",
        data: data,        
        cache: false,
    ...

url 中,我调用了发送电子邮件的 php 文件,但仅当我指定完整路径时,ajax 才获取它:

url: "http://www.domain.com/wp-content/themes/site_theme/templates/process.php",

但我必须使用这样的语法:

url: "../../templates/process.php",

或使用变量在 html header/footer 中声明

HTML

<script type="text/javascript">
  var urlMail = '<?php bloginfo('template_url'); ?>/templates/process.php';
</script>

脚本

url: "../../templates/process.php",

但对于上述两种情况,浏览器控制台都会检索到此错误:

POST http://www.domain.com/templates/process.php 404 Not Found 1.56s

我哪里错了?

最佳答案

这不是在 wordpress 中实现 ajax 的方式。所有 ajax 请求都应发送到 admin-ajax.php

在您的模板文件中:

<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>

在你的js中:

$.ajax({
        url: ajaxurl,    
        type: "POST",
        cache: false,
        data: data + '&action=sendmail' //action defines which function to use in add_action
});

在你的 functions.php 中:

function send_my_mail(){
#do your stuff
}

add_action('wp_ajax_sendmail', 'send_my_mail');
add_action('wp_ajax_nopriv_sendmail', 'send_my_mail');

了解 Ajax in Plugins .

关于php - AJAX 脚本的文件路径(在 Wordpress 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16274093/

相关文章:

jquery - 如何删除导航和主要内容之间多余的空白?

php - 仅显示 laravel 中文本中的字母数

php - 如何从多维数组mysql插入多行

php - 滚动时对数据库的双重请求

php - AJAX:显示MySQL数据以及多个选择框中的值

html - 以 Wordpress 为中心的导航

javascript - WordPress 中的 Ajax 调用不会转到 admin-ajax.php

php - 未通过中间件时来自节流请求的 TypeError

php - 提交前存储表单数据的最佳方式?

jquery - 无法使用 jQuery AJAX 将 null 传递到服务器。服务器收到的值是字符串 "null"