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
  • 投稿日時:
  • 更新日時:
金髪,おねショタ
【アダルトコミック】足がえろい!【おねショタ】
  • 画像 16枚
  • PV 6,947億
  • 金髪,おねショタ
金髪,女子高生,ギャル,ビッチ
奇跡的な優しさを誇るびちカス円光ギャル
  • 画像 18枚
  • PV 3,432億
  • 金髪,女子高生,ギャル,ビッチ
フルカラー,高画質
寝ている彼氏の朝勃ちンポコを見て一文字の「む」に草
  • 画像 6枚
  • PV 17,855億
  • フルカラー,高画質
おねショタ,コスプレ
すぐムキになる子供少年を愛してやまないラブラブHなホルスタイン牛女
  • 画像 10枚
  • PV 3,414億
  • おねショタ,コスプレ
乱交,人妻
娘と瓜二つなアイドル志望の脂肪ママ襲来
  • 画像 18枚
  • PV 3,517億
  • 乱交,人妻
褐色,巨乳,フルカラー
【フルカラー】褐色最上級の特選極上エロ肉美貌ビキニ銀髪
  • 画像 8枚
  • PV 0億
  • 褐色,巨乳,フルカラー
お知らせ
新年のご挨拶
  • 画像 22枚
  • PV 5,191億
  • お知らせ
巨乳,妹,八尋ぽち,高画質
超絶抜群すぎるスタイルで睡眠するイモウットにフルボッキ不可避
  • 画像 22枚
  • PV 4,625億
  • 巨乳,妹,八尋ぽち,高画質
金髪,おねショタ,女医
女医に射精する少年
  • 画像 21枚
  • PV 4,641億
  • 金髪,おねショタ,女医
乱交,巨乳
むっちり先生に言われたとおり攻めの姿勢で挑んだ結果姫
  • 画像 14枚
  • PV 4,929億
  • 乱交,巨乳
二次元,スク水,スポーツ
【工口同人誌】 大 開 脚 www スク水っぽいレオタードのスケベっ娘おまたびしょびしょ【時丸】
  • 画像 22枚
  • PV 0億
  • 二次元,スク水,スポーツ
金髪
【返品不可避】セッ久向けアンドロイド『セクサロイド』
  • 画像 26枚
  • PV 4,145億
  • 金髪
褐色,スポーツ,水泳
褐色水泳部による男子更衣室で恥ずかしがる男子とエッチしました
  • 画像 18枚
  • PV 8,251億
  • 褐色,スポーツ,水泳
褐色,女子高生,ギャル
やればできるムチギャルと童貞メガネ
  • 画像 22枚
  • PV 6,578億
  • 褐色,女子高生,ギャル
人妻,おねショタ,巨乳
くろいおぱっお
  • 画像 16枚
  • PV 7,570億
  • 人妻,おねショタ,巨乳
巨乳,田舎
顔がまんぽこ並にユルいゆるふわボインの天然あほヅラ
  • 画像 15枚
  • PV 3,474億
  • 巨乳,田舎
三次元,ヘッドライン
三連休最後の二百四十枚の適当画像
  • 画像 240枚
  • PV 0億
  • 三次元,ヘッドライン
褐色,筋肉,スク水
【えろまんが】このモブキャラのかおwwwwwwwwwww
  • 画像 20枚
  • PV 3,888億
  • 褐色,筋肉,スク水
人妻,ビッチ
【エ漫画ロ】新入社員の男性を餌食にするヤリマンOL
  • 画像 20枚
  • PV 7,675億
  • 人妻,ビッチ
巨乳
で、でた~www巨乳で乳輪でっかいエロ漫画~www
  • 画像 27枚
  • PV 3,353億
  • 巨乳
乱交,美少女,姉妹
Q,兄を起こす方法 → A,マン○コを挿入する
  • 画像 16枚
  • PV 0億
  • 乱交,美少女,姉妹
巨乳
彗星にまたがってあなたに急接近ah..ah..
  • 画像 22枚
  • PV 0億
  • 巨乳
美少女
社畜帰宅後寝落ちオナニーに神が祝福のオナニー(?)
  • 画像 33枚
  • PV 3,527億
  • 美少女
女子高生,スポーツ
離してほしい気持ちと便所に行きたい気持ちがマッチするタイミング
  • 画像 16枚
  • PV 4,109億
  • 女子高生,スポーツ
二次元,乱交,美少女,赤月みゅうと
【エロ同人誌】むちむち乱交ぴんくおまん○こドッピュドピュ精子www【赤月みゅうと】
  • 画像 32枚
  • PV 3,805億
  • 二次元,乱交,美少女,赤月みゅうと
巨乳,むっちり
淫乱アマカスむっちりドスケベのボロコス
  • 画像 20枚
  • PV 0億
  • 巨乳,むっちり
メガネ
【えろまんが】淫乱暴君眼鏡はちんちん大好き
  • 画像 21枚
  • PV 0億
  • メガネ
女子高生
強引な女子高生
  • 画像 24枚
  • PV 3,946億
  • 女子高生
ツンデレ
エロ漫画「エロ漫画みたいに一度アヘアヘするぐらいイッてみたいわけよ。」
  • 画像 25枚
  • PV 5,497億
  • ツンデレ
JC,美少女,青姦
深夜の学校のプールに入ってHして中出しして気持よく帰る
  • 画像 20枚
  • PV 7,588億
  • JC,美少女,青姦