1. TOP
  2. Blog
  3. wordpressのAMPでリダイレクトエラー

wordpressのAMPでリダイレクトエラー

公開日:2020年10月31日 最終更新日:2020年10月31日

最近、WordpressをAMP化しました。AMP化は専用のプラグインを入れるだけで対応出来たのですが、送信ボタンを使うとリダイレクトエラーが出るようになってしまいました。

サイトをAMP化

wordpressのAMP化は直ぐに出来ます。プラグイン(AMP )を入れるだけで完了します。本来はhtmlの書き方が変わるそうですね。

AMPの利点は表示速度が速くなることでしょうか。ただし、無駄を省いているためサイトによってはデザインが崩れてしまうかもしれません。凝ったサイトを作っている人は注意して下さい。

AMP化後に送信ボタンを押すとリダイレクトエラー

さて、AMP化をして使っていたところ、コメントの送信ボタンを押すとエラーが発生してしまいました。ボタンを押した時のリダイレクト処理が引っ掛かったようで、下記の様な忠告文が出てしまいました。

サーバーのレスポンスが ok でも、送信が処理されていない場合があります。 このフォーム処理機能の開発者に連絡して、このメッセージを改善してください。

AMPサイトでのリダイレクトエラー対策

ネットで対策を探したところ、AMPのヘルプページにjsonで判定すればいいと書いていました。よく分かりませんでしたが、とりあえず構文をコピペすることにしました。

下記をfunctionsに書き足すことで、エラーなしでリダイレクトするようになります。


<?php
function jsoncheck(){
    if ( wp_is_json_request() ) {
        if ( $success ) {
        $message = __( 'ok!', 'my-textdomain' ); } else { $message = __( 'ng!', 'my-textdomain' );
        }
    wp_send_json( compact( 'message' ), $success ? 200 : 400 );
    }
}
add_action('template_redirect','jsoncheck');?>
?>

お試し下さい。