最近、すべてのREST-APIリクエストが突然404エラーを返すようになりました。すべてのリクエスト(カスタムエンドポイントや組み込みに関係なく)。
次に、それはパーマリンクの構造によるものだと考えました。/wp-json/
現時点ではリダイレクトルールが存在しないため、プレーンパーマリンクではアクセスできません。
この状況でRESTエンドポイントを使用することは可能ですか?カスタムと組み込みの両方。
最近、すべてのREST-APIリクエストが突然404エラーを返すようになりました。すべてのリクエスト(カスタムエンドポイントや組み込みに関係なく)。
次に、それはパーマリンクの構造によるものだと考えました。/wp-json/
現時点ではリダイレクトルールが存在しないため、プレーンパーマリンクではアクセスできません。
この状況でRESTエンドポイントを使用することは可能ですか?カスタムと組み込みの両方。
回答:
はい、できます。rest_route
クエリパラメータを追加するだけです。
そう
https://wordpress.org/wp-json/
なるだろう
https://wordpress.org/?rest_route=/
または、より完全な例を示すhttps://wordpress.org/wp-json/wp/v2/
ようhttps://wordpress.org/?rest_route=/wp/v2
になります。
それで、どれを使用するかをどのように決定するのか疑問に思っていますか?心配する必要はありません。そのための関数があります。get_rest_url()
別のオプションは、デフォルトで<link>
APIルートを提供するヘッダーにがあるという事実です。
<link rel='https://api.w.org/' href='https://wordpress.org/wp-json/' />
だからあなたがクライアントサイドJSからそれを理解する必要がある場合は、
document.querySelectorAll('link[rel="https://api.w.org/"]')[0].getAttribute('href');
したがって、基本的にはwp-json
、指定された部分(およびハードコード)を採用するのではなく、get_rest_url()
上記のJSアプローチを使用するか、常に動的にビルドする必要があります。
/?rest_route=/?_jsonp=callBackfn
が404ステータスになりました。
/?rest_route=/&_jsonp=callBackfn
https://wordpress.org/?rest_route=SOMEPATH&value1=X&value2=Y
でしょうか?つまり、パーマリンク構造を検出し、それに基づいてRESTルートを変更するための条件が必要ですか?