WordPressでajax実装したのはいいけど、スマホで実機確認したら動いてない!読み込みに失敗してる!
PCで動いてスマホで動かないってどういうことやねん…ajaxやぞ…そんなことあんのか…
と長い間悩んでましたが、全然違うところに原因があってしんどかったという話です。
管理画面にログインしているかどうかが問題だった
スマホで動いてないのではなく、管理画面にログインしてないときに動いてなかったのです。なんてこった…ずっとログインしたまま作業してたからね…
というわけで、管理画面にログインしてないときに動かない場合に見る部分はこちらです。
1 2 3 4 5 6 7 8 |
/** * Ajax実装部分 */ function my_ajax_scroll() { // ここに処理を書く } add_action('wp_ajax_my_ajax_scroll', 'my_ajax_scroll'); add_action('wp_ajax_nopriv_my_ajax_scroll', 'my_ajax_scroll'); |
WordPressでAjaxを使うとき、functionsにこんな感じで関数を書き、add_actionしますね。
この”wp_ajax_nopriv”のほうは「ログインしていないとき」に有効なadd_actionで、ここを忘れてたり間違えてたりすると、ログインしていない状態でうまくajax通信ができないということでした。
以上、現場からでした。