Wordpress ajax

在function中定义函数

GET方式

function get_data()
{
    $params = "";
    $result = "";
    if (isset($_GET["action"]) && $_GET["action"] == "get_data") {
        if (isset($_GET["params"]) && $_GET["params"]) {
            $params = $_GET["params"];
            $result .= "返回内容";
        }
    }
    echo $result;
    die(); //不可省略
}

POST方式

function get_data()
{
    $params = "";
    $result = "";
    if (isset($_POST["action"]) && $_POST["action"] == "get_data") {
        if (isset($_POST["params"]) && $_POST["params"]) {
            $params = $_POST["params"];
            $result .= "返回内容";
        }
    }
    echo $result;
    die(); //不可省略
}

注册函数

add_action("wp_ajax_get_data", "get_data"); //后台登录
add_action("wp_ajax_nopriv_get_data", "get_data"); //不用后台登录

ajax请求

GET方式

<script>
jQuery(document).ready(function($) {
    $.ajax({
        url: "<?php echo admin_url("admin-ajax.php"); ?>?action=get_data&params=test",
        datatype: "json",
        type: "get",
        success: function(data) {
            $("#data-content").html(data);
        }
    })
})
</script>

POST方式

<script>
jQuery(document).ready(function($) {
    $.ajax({
        url: "<?php echo admin_url("admin-ajax.php"); ?>",
        datatype: "json",
        type: "get",
        data: {
            action : "get_data",
            params : "test"
        },
        success: function(data) {
        $("#data-content").html(data);
        }
    })
})
</script>

渲染

<div id="data-content"></div>