Ajax処理ができるようにしたい

2019年11月19日

使用例

<?php

/*
ajaxを使ってデータを投げるJavaScript例としては、こんな感じ
$('#button').on('change', function(){
    $.ajax({
        url: '/wp-admin/admin-ajax.php', 
        type: 'POST',
        dataType: 'text',//dataTypeは、text , json , html , xml , script , jsonp
        data: {
            action: 'for_loginuser',//action name ajax受け取り側は、このアクション名の先頭に、「wp_ajax_」や、「wp_ajax_nopriv_」つけてadd_actionする
            hogehoge: 3
        }).done(function(data){
            console.log(data);
        }).fail(function(XMLHttpRequest, textStatus, error){
            console.log(error);
        });
        
});
*/
//使用例
$hogehoge = new HOGEHOGE();
class HOGEHOGE {
    public function __construct() { 

        //ログインユーザーだけが使えるようにするajaxは、wp_ajax_{action name}というアクション名で追加
        add_action( 'wp_ajax_for_loginuser', array( &$this, 'hogehoge_for_loginuser') );  

        //ログインしていないユーザーでも使えるよajaxは、wp_ajax_nopriv_{action name}というアクション名で追加
        add_action( 'wp_ajax_nopriv_for_nonloginuser', array( &$this, 'hogehoge_for_nonloginuser') );
    }
 
    public function hogehoge_for_loginuser() 
    { 
        echo $hogehoge_data = filter_input( INPUT_POST, 'hogehoge', FILTER_SANITIZE_NUMBER_INT );
        die();
    } 

    public function hogehoge_for_nonloginuser()
    {
        //略
    }

}

Posted by webmaster