ajax链接php,链接Ajax URL的正确方法

小编典典

找出目标网址

在WordPress中,所有AJAX请求都必须发送到以下URL:

http://www.example.com/wp-admin/admin-ajax.php

您不应该直接向插件或主题目录中的文件发出AJAX请求。

另外,请勿对上面的URL进行硬编码,而应使用以下函数来构造URL:

ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";

除了上述以外,您还可以使用wp_localize_script(),但这不是必需的,以上也可以。

注意:不用担心“管理员”部分,此URL是适用于所有用户(包括非登录(来宾)用户)的正确URL。

告诉WordPress您的AJAX请求使用什么功能

您需要让WordPress知道哪个函数应该处理您的AJAX请求。

为此,您将创建一个自定义函数,并使用wp_ajax_*和wp_ajax_nopriv_*钩子进行注册:

add_action('wp_ajax_mycustomfunc', 'mycustomfunc'); // Logged-in users

add_action('wp_ajax_nopriv_mycustomfunc', 'mycustomfunc'); // Guest users

function mycustomfunc() {

$whatever = esc_html($_POST['whatever']);

echo 'It works: '.$whatever;

exit; // This is required to end AJAX requests properly.

}

不要忘记在AJAX请求中也指定“ mycustomfunc”

最后,这是您如何发出适当的AJAX请求的方法:

(function ($) {

$(document).ready(function () {

var my_data = {

action: 'mycustomfunc', // This is required so WordPress knows which func to use

whatever: "yes it is" // Post any variables you want here

};

jQuery.post(ajax_url, my_data, function(response) {

alert('Got this from the server: ' + response);

});

});

})(jQuery);

结合所有

如果必须将所有内容放到一个文件中,请按以下步骤操作:

// Register my custom function for AJAX processing

add_action('wp_ajax_mycustomfunc', 'mycustomfunc'); // Logged-in users

add_action('wp_ajax_nopriv_mycustomfunc', 'mycustomfunc'); // Guest users

function mycustomfunc() {

$whatever = esc_html($_POST['whatever']);

echo 'It works: '.$whatever;

exit; // This is required to end AJAX requests properly.

}

// Inline JavaScript

add_action('wp_footer', 'my_inline_js');

function my_inline_js() { ?>

// Set the "ajax_url" variable available globally

ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";

// Make your AJAX request on document ready:

(function ($) {

$(document).ready(function () {

var my_data = {

action: 'mycustomfunc', // This is required so WordPress knows which func to use

whatever: "yes it is" // Post any variables you want here

};

$.post(ajax_url, my_data, function(response) { // This will make an AJAX request upon page load

alert('Got this from the server: ' + response);

});

});

})(jQuery);

}

注意:对于ajax_url零件,您可以使用wp_localize_script()而不是手动进行设置,但是灵活性较差,因为它需要指定可能没有的现有排队脚本。

注意:此外,为了将内联JavaScript手动输出到页面中,此wp_footer钩子是正确使用的钩子。如果使用wp_localize_script(),则应改用wp_enqueue_scripts钩子。

2020-07-26

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值