小编典典

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

ajax

我使用此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页眉/页脚中声明

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

我哪里错了?


阅读 224

收藏
2020-07-26

共1个答案

小编典典

那不是在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

2020-07-26