wordpressのプラグインを作りながらphpとAjaxを勉強していて、なんとか完成させました。サイト上のすべてのバナーのクリック数とインプレッション数をカウントします。そのプラグインなどを介してバナーを配置します... とにかく、各バナーが取得するインプレッション数の追加が完了しました。問題なく動作します。しかし、チュートリアルではなく自分でこれを行ったので、これが正しい方法なのか疑問に思っています。
$(window).load(function() {
$("a[count]").each(function(){
var id = $(this).attr("count");
var data = {
action: 'impressions_count',
postid: id
};
$.post(MyAjax.ajaxurl,
data,
function(response) {
console.log( response);
});
})
});
これはDBを更新するコードの一部です
function impressions_count_callback() {
global $wpdb;
$post_id = $_POST['postid'];
//print_r($post_id);
$post_id = mysql_real_escape_string($post_id);
$wpdb->query("UPDATE ". $wpdb->prefix ."cb_ads_manager SET impressions = impressions+1 WHERE ID = '$post_id'");
}
ご覧のとおり、サイト上のバナーごとに ajax リクエストを送信しているため、バナーが 5 つある場合は 5 つのリクエストになります。1回のリクエストですべてを送信しても違いはありますか?それでも、dbクエリでforeachループを実行する必要があるため、一度に実行できない限り、5つのdbクエリを再度実行します。
PS私がWP内で作業している場合でも、これはphp/ajaxの質問だと思います。それが私がここで尋ねた理由です。