Admin ajax.php 400 bad request WordPress

を日本語に翻訳すると、「admin-ajax.php 400 (不正なリクエスト) WordPress」となります

Rate this article

Share this article

Admin-ajax.php は、AJAX (非同期 JavaScript および XML) を介したサーバーとユーザーのブラウザ間の通信を容易にする WordPress の重要なファイルです。ただし、admin-ajax.php に関連する 400 Bad Request エラーが発生すると、WordPress ユーザーはイライラする可能性があります。この記事では、この問題の原因を深く掘り下げ、それを解決する効果的な方法を検討します。

Admin-ajax.php 400 エラーの原因:

プラグインまたはテーマの競合:

多くの場合、プラグインまたはテーマ間の競合により、400 Bad Request エラーが発生する可能性があります。すべてのプラグインを非アクティブ化するか、デフォルトの WordPress テーマに切り替えても問題が解決しないかどうかを確認してください。エラーが消えた場合は、競合する要素を 1 つずつ再アクティブ化することで、競合する要素を特定できます。

間違った AJAX URL:

admin-ajax.php ファイルが適切に機能するには、正しい AJAX URL が必要です。テーマまたはカスタム コード スニペットの設定ミスが原因で URL が正しく設定されていないと、400 エラーが発生する可能性があります。 AJAX リクエストが正しい URL を指していることを確認してください。

サーバー構成の問題:

サーバー設定の制限やサーバー リソースの不足など、サーバー関連の問題が 400 エラーの原因となる可能性があります。サーバーが WordPress の要件を満たしていることを確認し、関連するエラー メッセージがないかサーバー ログを確認してください。

スクリプトエラーまたはマルウェア:

WordPress サイト上の悪意のあるスクリプトまたはマルウェアは、admin-ajax.php の適切な実行を妨げ、400 エラーを引き起こす可能性があります。サイトを定期的にスキャンしてマルウェアがないか確認し、すべてのスクリプトを最新の状態に保つことで、セキュリティの脆弱性を最小限に抑えます。

Admin-ajax.php 400 エラーの解決:

WordPress コア、テーマ、プラグインを更新します:

WordPress コア、テーマ、プラグインが最新であることを確認してください。開発者はバグに対処し、互換性を強化するために頻繁にアップデートをリリースするため、古いソフトウェアを実行すると 400 エラーが発生する可能性があります。

AJAX リクエストを確認します:

AJAX リクエストを調べて、リクエストが正しくフォーマットされていて、admin-ajax.php ファイルを指していることを確認します。セキュリティを強化するために、ノンス検証も適切に実装されていることを確認してください。

サーバーの問題を調査します:

サーバー ログを調べて、サーバー関連の問題の兆候がないか確認します。サーバー環境が WordPress 用に最適化されていることを確認するには、ホスティング プロバイダーに相談してください。

デバッグとエラーログ:

WordPress でデバッグを有効にして、より詳細なエラー メッセージを取得します。これは、400 エラーの具体的な原因を特定し、トラブルシューティング プロセスを効率化するのに役立ちます。問題が解決したら、サイトのパフォーマンスを維持するために必ずデバッグをオフにしてください。

WordPress の Admin-ajax.php 400 Bad Request エラーを解決するには、根本的な問題を特定して対処するための体系的なアプローチが必要です。プラグインの競合、不正な AJAX URL、サーバーの問題などの潜在的な原因を調査し、WordPress インストールが最新であることを確認することで、この一般的な問題を効果的にトラブルシューティングして解決できます。プロセス中に問題が発生した場合は、WordPress フォーラムに支援を求めるか、開発者に相談すると、特定の状況に合わせた貴重な洞察が得られる可能性があります。

読む WordPress admin-ajax 400 不正なリクエスト 詳細については。

最近はajaxに取り組んでいます。ネット上で見つかるチュートリアルはどれも非常に似ており、実装は比較的簡単です。しかし、ajax-admin.php では常に不正なリクエスト 400 が発生します。

WordPress 検索が機能しない場合は、 私はあなたに提案します WordPress カスタム検索に関するこの記事をお読みください。

長く集中的に調査した結果、それが統合時期のせいであることがわかりました。

WordPress サイト検索の作成については、前提条件ではありませんが、この投稿で簡単に説明しています。

wordpress admin ajax 400 bad request

Wordpress に検索を追加する

「init」-action-hook を使用してスクリプトと wp_localize_script を初期化すると、すべてが正常に動作します。したがって、コード自体は正しい必要があります。

しかし、たとえば「wp_enqeue_scripts」-action-hook を使用すると、常に不正なリクエストが返されます。

探しているなら 検索結果ページを追加し、 この投稿をお見逃しなく。

これの問題点は次のとおりです:

追加の PHP に関数を用意し、特定のページで必要な場合にのみ関数をロードしたいと考えています。このためには、たとえば is_page() が必要です。ただし、is_page() は、「parse_query」アクションフックに含めて関数をフックすると、最も早く機能します。

したがって、my-page-test-functions.php では、init が parse_query の前にあるため、「init」は機能しません。

この投稿はあなたに役立ちます WordPress サイトに検索バーを作成します。

もしあなたがそのことについてだったら WordPress サイトに Google 検索バーを追加する  そちらでも対応させていただきます。

これをうまく機能させるためのベストプラクティスはありますか?または、「wp_enqeue_scripts」-action-hook を使用する場合の admin-ajax.php の不正なリクエストを修正するにはどうすればよいですか?

説明するのは難しいですが、かなり理解できると思います。

ここで唯一欠けているのは、 add_action(‘wp_ajax_nopriv_ajaxlogin’,’ajax_login’); を移動する必要があることだと思います。 ajax_login_init の外側。

このコードは Ajax ハンドラーを登録しますが、wp_enqueue_scripts でのみ実行する場合はすでに手遅れで、wp_ajax_nopriv_ フックがすでに実行されています。

ご希望の場合は WordPress ページに検索ウィジェットを追加します, ここにあなたを助けるガイドがあります。

これで、特定のページでのみJavaScriptを読み込むことが明確になりました。つまり、is_page()をajax_login_init()の中に入れる必要があります。コードをそのように更新しました。

すべての手順を正確に従ったとしても、望んだ結果が得られないことがあります。

例えば、見えない場合があります WordPressページの検索ボックス could be possible for quite a few reasons.

今、なぜあなたの解決策はうまくいかなかったのですか?

もちろんです!以下は、日本語訳です:

is_page() チェックは、functions ファイルがその特定のページでのみ読み込まれることを意味しました。ajax_login_init() が呼び出され、スクリプトがキューに入れられます。ここまでは順調です。

次に、スクリプトが ajax コールを行います。コメントにもあるように、ajax コールは現在のページを認識していません。ファイルが wp-admin/admin-ajax.php にあるのには理由があります。WP_Query が存在せず、したがって、ajax リクエスト中には is_page() は機能しません。

これでよろしいでしょうか?

もし、あなたのサイトや観客が高度な検索を必要とすると感じた場合は、この投稿を読んでください  を日本語に翻訳すると、「高度な検索フォーム」となります 関連する検索結果を見つけるのに役立つでしょう。 加えて、WordPress を日本語に翻訳すると、「高度な検索フォームのカスタムフィールド」となります 異なる主題であり、すべてのウェブサイトには必ずしも該当しない。

それでは機能しないため、sw18_page_specific_functions() は ajax のコンテキストでは何も実行しません。これは、functions ファイルが読み込まれず、ajax ハンドラが存在しないことを意味します。

そのため、常にその functions ファイルを含めて、is_page() チェックを ajax_login_init() 内に移動する必要があります

を日本語に翻訳すると、「できます」となります  を日本語に翻訳すると、「この記事にスキップ」です を日本語に翻訳すると、「問題がまだ解決していない場合。」となります。

 

を日本語に翻訳すると、「WordPress に検索を追加する」となります

Are you showing the right products, to the right shoppers, at the right time? Contact us to know more.
You may also like