WordPressを実践勉強中、ajaxについてうにゃ。

20171027

文字数[924文字] この記事は1分9秒で読めます.

Logging

WordPressでajaxを動かそうするとき、WordPressのルールに 則って動かさないと動かないらしい。 なので、このような記述を書かないといけない。 まず、非同期処理の送信先に、admin-ajax.phpというファイルを指定。 そこへPOSTかGETしないといけない。そしてデータとして アクションさせるファンクション名を記述して 上げないといけないらしい。 こんな感じになる。
$( '#submit' ).on( 'click', function(){
    $.ajax({
        type: 'POST',
        url: <?=admin_url('admin-ajax.php')?>,
        data: {
            'action' : 'hoge_f',
        },
        dataType: "json",
        success: function( obj){
            alert( obj );
        }
    });
    return false;
});
次にWPテーマのファンクションファイルに下記を追加記述。
function hoge_f(){
echo json_encode($_POST);
    die();
}
add_action( 'wp_ajax_hoge_f', 'hoge_f' );
add_action( 'wp_ajax_nopriv_hoge_f', 'hoge_f' );
ここでミソなのが、die();という部分、これを除けると0という文字も出力されてしまう。 ちなみにwp_ajaxがログイン時の振る舞い、wp_ajax_noprivがログアウト(=訪問者)時の 振る舞いだそうだ。 この2つの勘所だけ覚えとけばWordPressで非同期処理が 行えるのではないだろうか、もっと詳しく知りたい場合、admin-ajax.phpの中身を 見たらよいのだろうけど、にわかWordPress職人さんはコレだけ 覚えとけば良さそうだと。  



1100番目の投稿です/339 回表示されています.

中の人🏠️

AIによるおすすめ記事

著者名  @taoka_toshiaki

※この記事は著者が30代後半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


タグ

'hoge_f', 'wp_ajax_nopriv_hoge, Action, admin-ajax.php, AM, click, dataType, echo json_encode, function hoge, function hoge_f, obj, POST, return false, submit, WordPress職人, ファンクション, ファンクションファイル, ログアウト, , 非同期処理,