wordpress 如何处理 ajax 请求

2019-11-25  本文已影响0人  s_u_n

1.其中需要着重说明的是ajax的url字段和data字段的action字段,其中url为http://your_domain.com/wp-admin/admin-ajax.php,因为要想处理ajax请求,必须打到这个地址。

data字段是要发送的数据嘛,里面必须包含action字段,并且,这个action的值必须是一个名字handler(可自定义),先放一边。

js部分:

var ajaxurl ='<?php echo admin_url('admin-ajax.php')?>';

$('#showding').click(function(e){

var ip = returnCitySN['cip'];

    $.ajax({

type:'post',

        url:ajaxurl,

        data:{'action':'handler',

            'id' :"<?php echo $id;?>",

            'type':'showding',

            'ip': ip

},

        cache:false,

        dataType:'json',

        success:function(res){

console.log(res.code)

},

        error:function(data){

console.log("ajax请求失败");

        }

});

    return false;

});

2.编写处理ajax请求的函数

在theme/functions.php里添加如下代码:

首先第一点,这两片段代码中的加粗字体必须一致。

其次钩子函数必须是wp_ajax_* (这个是admin用户的权限)和 wp_ajax_nopriv_*(这个是普通用户的权限)

最后handler()函数里必须有一个 echo 和 wp_die()或die()结束。并且 echo的必须是string类型

functions.php 添加代码:

function handler(){

    if (empty($_POST['id'])){

        $arr = ['code'=>0,"msg"=>"操作失败,请联系管理员"];

        echo wp_send_json($arr);

    }else{

        echo 1;

    }

    wp_die();//必须带

}

add_action( 'wp_ajax_handler', 'handler' );//必须带

add_action( 'wp_ajax_nopriv_handler', 'handler' );

基本上这时候就可以了

上一篇下一篇

猜你喜欢

热点阅读