栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

链接Ajax URL的正确方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

链接Ajax URL的正确方法

找出目标网址

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

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

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

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

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

除了上述以外,您还可以使用

wp_localize_script()
,但这不是必需的,以上也可以。

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

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

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

为此,您将创建一个自定义函数,并使用

wp_ajax_*
wp_ajax_nopriv_*
钩子进行注册:

add_action('wp_ajax_mycustomfunc', 'mycustomfunc'); // Logged-in usersadd_action('wp_ajax_nopriv_mycustomfunc', 'mycustomfunc'); // Guest usersfunction 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 processingadd_action('wp_ajax_mycustomfunc', 'mycustomfunc'); // Logged-in usersadd_action('wp_ajax_nopriv_mycustomfunc', 'mycustomfunc'); // Guest usersfunction mycustomfunc() {    $whatever = esc_html($_POST['whatever']);    echo 'It works: '.$whatever;    exit; // This is required to end AJAX requests properly.}// Inline Javascriptadd_action('wp_footer', 'my_inline_js');function my_inline_js() { ?>    <script>        // 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);    </script>    <?php}

注意:对于

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

注意:此外,为了将内联Javascript手动输出到页面中,此

wp_footer
钩子是正确使用的钩子。如果使用
wp_localize_script()
,则应改用
wp_enqueue_scripts
钩子。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437019.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号