WordPressのコメント欄に簡単にAjax非同期通信化する

    WEBマスター
  • 視聴回数: 0
  • 関連語句: WEBマスター
  • 画像枚数: 0
  • 投稿日時:
  • 更新日時:

コメントをワンクリックボタン式にすると1日に200件ほどの大量のコメント(スパムでは無い)を頂けるようになったので、コメントされる方にもっとスムーズに送信できるようにしました。コメントボタンをクリックするとページ遷移すること無く、その画面の状態で通信が行われ送信することができます。これをAjax非同期通信と言います。


Ajaxと聴くと一見難しそうに聞こえますが、中身はただのjQueryなのでフォーメーション(JSON)さえ覚えれば簡単です。jQueryなのでiPhoneやAndroidなどのスマホ端末にも対応しているところが見どころです。


実装コード

<?php function ajaxify_comments_script(){ ?>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(function() {
    $("#comment-button input").click(function() {
        $("#comment-text").val($(this).val()+$.now());
        var formdata = $("#comment-form").serialize();
        var commentbody = $("#comment-text").val();
        $.ajax({
            type: 'post',
            url: FORM_ACTION_URL,
            data: formdata
            }).done(function(data, status) {
                if(status == "success") {
                $('body').delay(100).animate({
                scrollTop: $(document).height()
                },1000);
                $("#comments-area").after('
                    <div class="comments-author">コメントが送信されました</div>
                    <div class="comments-body">'+commentbody+'</div>
                ');

                $("#comment-form").hide();
                return false;
            } else {
                alert("ERROR");
                return false;
            }
        }).fail(function(data) {
            alert("中断");
        });
    });
});
</script>
<?php
}
add_action('wp_footer', 'ajaxify_comments_script');
wp_footer();
?>



コードの解説

// WordPress誓約上、Ajaxを使用する際には関数を記述しなければならない。
<?php function ajaxify_comments_script(){ ?>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(function() {


// コメント簡易ボタン式のどれか一つをクリックすると実行
$("#comment-button input").click(function() {


// ボタンのテキストをそのままコメント本文へ
// $.nowは時刻。コメント重複するとスパムと認識されてしまうのでとりあえず現在の時刻を数値化し排他
$("#comment-text").val($(this).val()+$.now());


// 便利なserialize関数。formの内容をすべて一意の変数にしてくれる。
var formdata = $("#comment-form").serialize();


// コメント内容を変数に代入
var commentbody = $("#comment-text").val();


// Ajax通信開始
$.ajax({
type: 'post',
url: FORM_ACTION_URL,
data: formdata


// 通信処理が成功すれば下記を実行
}).done(function(data, status) {


// 通信が無事完了すれば下記を実行
if(status == "success") {


// 一番下へアニメーションスクロールさせる
$('body').delay(100).animate({
scrollTop: $(document).height()
},1000);


// コメントループの最後に、実際にコメント欄に挿入された時の状態を再現。
$("#comments-area").after('<div class="comments-author" style="background: #9A93FF;">コメントが送信されました、まもなく処理されます</div><div class="comments-body">'+commentbody+'</div>');

// コメント送信関連は全て撤去、これをしないと何度も連投できてしまう。
$("#comment-form").hide();


// フォルスをリターンする。
return false;


// 通信が失敗した場合
} else {
alert("ERROR");
return false;
}


// 通信できなかった場合
}).fail(function(data) {
alert("中断");
});
});
});
</script>
<?php
}

// WordPressの誓約上、このような記述が必要。いちいちfunctions.phpに記載しなくてもよい
add_action('wp_footer', 'ajaxify_comments_script');
wp_footer();
?>

wp_head()やwp_footer()は絶対に付けたくないんですが、Ajax使用するためには必要不可欠でした。裏で何をやっているかよくわかりませんが、内部構造をいじれればwp_footer()を外します。ただ、ソースを見る限りwp_footer()をつけたからといって不要なコードなど付加されていないので、良しとします。

また、このコードを使用する際は外部に読み込まず、直接テンプレートに入力(インライン化)、さらに一番最後の方に記述したほうがSEO的に有利です。ちなみにエロジンではJavaScriptはJavaScriptで生成されたJavaScript以外の全てをインライン入力にしています。そのためソースが大変読みづらいですが、GTMetrixなどで高得点を得ることができます。

    WEBマスター
  • 視聴回数: 0
  • 関連語句: WEBマスター
  • 画像枚数: 0
  • 投稿日時:
  • 更新日時:
乱交,おねショタ,丸居まる,巨乳,コスプレ,高画質
PCモニタに射精したら工口ゲーキャラが飛び出てきたゾ!
  • 画像 20枚
  • PV 0億
  • 乱交,おねショタ,丸居まる,巨乳,コスプレ,高画質
人妻,おねショタ
外で乳首をさらけだすこの春破廉恥極まりない器のでかい大家さんと男子小学生
  • 画像 16枚
  • PV 7,008億
  • 人妻,おねショタ
女子高生,おねショタ
でかい女の魅力
  • 画像 22枚
  • PV 0億
  • 女子高生,おねショタ
乱交,女医
オナニー依存症のあなたに必見!オナ禁外来
  • 画像 16枚
  • PV 6,000億
  • 乱交,女医
女子高生,メガネ
ところがどっこい!そのメガネは可愛かった!!!!
  • 画像 20枚
  • PV 3,694億
  • 女子高生,メガネ
JC,おねショタ
【実録】女子中生が性行為の練習相手に友達の弟を選択
  • 画像 19枚
  • PV 5,686億
  • JC,おねショタ
JC,姉妹
童貞「キャーーーーーッ!!!!」
  • 画像 18枚
  • PV 0億
  • JC,姉妹
巨乳
えぇ~入れてよけちんぽ!
  • 画像 16枚
  • PV 3,347億
  • 巨乳
女子高生,シュール,ギャグ
【え漫画ろ】無理矢理感糞ワロタwwwwwwww
  • 画像 23枚
  • PV 3,232億
  • 女子高生,シュール,ギャグ
巨乳,フルカラー,コスプレ
【フルカラー】今日はママたちの帰りが遅くなるのでとネコミミメイドコスのボインが求めてくるんだが
  • 画像 5枚
  • PV 6,092億
  • 巨乳,フルカラー,コスプレ
巨乳,むっちり
下校中読んで字のごとくポッチャリん娘のオッパオもみもみもみしだく
  • 画像 4枚
  • PV 5,229億
  • 巨乳,むっちり
JC,美少女,メガネ
きょ、教師が全員口りとは限らないんだぞ!
  • 画像 22枚
  • PV 5,046億
  • JC,美少女,メガネ
巨乳,コスプレ
バニーガールボイン
  • 画像 12枚
  • PV 4,333億
  • 巨乳,コスプレ
人妻,おねショタ
自慰の大好きなお母さん
  • 画像 24枚
  • PV 6,098億
  • 人妻,おねショタ
女子高生,おねショタ
先生!オナニーってなんですか!
  • 画像 20枚
  • PV 5,716億
  • 女子高生,おねショタ
女子高生,メガネ
冷血で真面目な風紀委員長も羞恥アバズレ顔に変身。そう、この遠隔バイブならね。
  • 画像 22枚
  • PV 0億
  • 女子高生,メガネ
巨乳,姉妹
EROMANGAのくせにGOMUつける男wwww
  • 画像 19枚
  • PV 3,583億
  • 巨乳,姉妹
JS,美少女,大塚麗夏,高画質
エロマンガ会最高品質のJS万個をこの週末にお届けしました。
  • 画像 20枚
  • PV 7,938億
  • JS,美少女,大塚麗夏,高画質
女子高生,姉
いや普通閉めるだろ、ナニ勃ってんだよって脱ぐなよ
  • 画像 15枚
  • PV 3,209億
  • 女子高生,姉
美少女
【朗報】ミニスカJK、おパンツ履き忘れて登校。興奮のあまりペン自慰
  • 画像 20枚
  • PV 0億
  • 美少女
美少女,アニメ
【エ漫ロ画リ】花咲くまん子
  • 画像 26枚
  • PV 4,604億
  • 美少女,アニメ
人妻,むっちり
パンチラの書き方を学びに兼モデルとして来たムチムチ
  • 画像 16枚
  • PV 4,365億
  • 人妻,むっちり
女子高生,こんちき
うわっくっさ!割りとブサイクな方とエッチしとるやんけ!
  • 画像 20枚
  • PV 4,142億
  • 女子高生,こんちき
むっちり,ホムンクルス
えろい顔して寝んなよ
  • 画像 16枚
  • PV 3,889億
  • むっちり,ホムンクルス
JS,美少女
童貞だからよくわからんが幼き少女にその巨乳用ワンピースは売っているのか
  • 画像 22枚
  • PV 4,742億
  • JS,美少女
女子高生,巨乳,シュール,ギャグ,高画質
『高画質』携帯のアラームでしか起きられない女スペシャル
  • 画像 20枚
  • PV 13,929億
  • 女子高生,巨乳,シュール,ギャグ,高画質
女子高生,ギャグ
ジャン・・・・ケン・・・おまん○こ\クパァ/チョキwwwwwwwwww
  • 画像 16枚
  • PV 6,194億
  • 女子高生,ギャグ
女子高生
立ちバック内股足コキが良い!
  • 画像 20枚
  • PV 0億
  • 女子高生
三次元
【グロ有】外国人女性たちのドスケベセクシー画像52枚
  • 画像 50枚
  • PV 0億
  • 三次元
人妻,巨乳,イノウエマキト,青姦
そとではだかでイって・・・きもちいいのとまんなくて・・・わたしもうもどれない
  • 画像 16枚
  • PV 6,321億
  • 人妻,巨乳,イノウエマキト,青姦