HOME
Blog
wordpressをAMP化中に送信ボタンのエラー
カテゴリー
Blog

wordpressをAMP化中に送信ボタンのエラー

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

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

AMP化

AMPはGoogleとTwitterが押しているらしく、SEOとしてもいいらしいです。表示も早くなりますし、ユーザーフレンドリーということなのでしょう。

私はコードを書けないため、専用のプラグインを使ってAMP化しました。Googleも開発に携わっているプラグインだそうです。次のリンクはプラグインの公式サイトです。AMP

送信ボタンを押すとエラー

AMPプラグインでは、エラーを検出してくれます。色々見つつ修正をしていたのですが、コメントの送信ボタンを押すとエラーが発生してしまいました。

どうやら、ボタンを押したときにリダイレクト処理を入れていると出るエラーらしいです。

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

対策

AMPのヘルプページにjsonで判定すればいいと書いていましたが、あまりよく分かりませんでした。(私のような初心者は直接的にこうしろ、と書かれていないと訳がわからないのです)。

何日かかけて理解し、functionsにコードを書き足すことでエラーなしでリダイレクトするようになりました。下のコードを子テーマの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');?>
?>

お試し下さい。