美文网首页
wordpress 如何处理 ajax 请求

wordpress 如何处理 ajax 请求

作者: s_u_n | 来源:发表于2019-11-25 14:37 被阅读0次

    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' );

    基本上这时候就可以了

    相关文章

      网友评论

          本文标题:wordpress 如何处理 ajax 请求

          本文链接:https://www.haomeiwen.com/subject/ahnkvctx.html