为什么在WordPress中注册的ADD_ACTION不能使用AJAX

时间:2017-07-23 作者:MDA

我在WordPress中创建了一个模板页面,并使用add\\u action定义Ajax中使用的操作。

 <?php
/*template name: get_pass
*/
add_filter(\'wp_ajax_my_action1\',\'mda_get_license\');

function mda_get_license(){
    echo 54;
   die();

}
?>
使用jQuery代码如下:

(function( $ ) {
    $(function(){

        $("#btn_code").click(function(){
            showPass($("#input_serial").val());
        });
        function showPass(str) {

            if (str.length != 0) {

                $.post("http://example.com/wp-admin/admin-ajax.php",{action:\'my_action1\'},function (response) {

                    alert(response);


                })

            }
        } 

    });

})(jQuery);
当我在函数中放入add\\u action时。ajax主题的php可以工作,但当将add\\u操作放在我的模板文件中时,ajax返回0。我使用

global $wp_filter;
print_r($wp_filter);
查看已注册的操作,并查看已注册的两个操作。现在我为什么要add_action 在我的模板文件中,Ajax在注册操作时返回0?

1 个回复
SO网友:Milo

AJAX请求是一个独立于呈现页面的请求。您的AJAX处理程序正在为页面服务的请求上注册,但AJAX请求没有注册,这才是最重要的。

移动您的add_action 并根据您的主题functions.php 文件,加载所有请求。

结束

相关推荐

将JSON数据从WP查询传递到AJAX导致空错误

我当前正在使用WP_Query 这将在按下按钮时从AJAX调用触发。post元字段lat lng 将用作谷歌地图的位置数据。没有AJAX,查询输出很好,但似乎无法让它返回结果。我收到的回复-[{name: \"\", lng: null, lat: null}, {name: \"\", lng: null, lat: null}]现在,我认为错误在于在以下位置将结果转换为JSONjson_encode 阶段,但不太确定?任何帮助都会很好,对AJAX来说都是全新的!Function.php<?php