WP REST APIデフォルトのwp-json uri部分の名前を変更するのは簡単ですか?


8

WP REST APIは多くの情報を公開するため、公開する必要のないエンドポイントをフィルター処理します。

すべてをフィルタリングすることはできません。たとえば、必要なメディアファイルの場所が公開されています。

追加の保護として、デフォルトのURIをわかりやすく説明します。

私は、例えば変更したい:http://example.com/wp-json/wp/v2/http://example.com/mistified/wp/v2/

これはかなり簡単ですか?


保護のため?URLは引き続きHEADに表示されます。つまり、誰でもソースで見ることができます。そして、名前空間は利用可能なすべてのエンドポイントを自動的に表示するはずです。v2.wp-api.org/guide/discoveryを
jgraup

API以外のリクエストは、フロントエンドアプリが存在する外部URLにリダイレクトされます。そのため、HEADには表示されないと思います。を含むすべてのデフォルトエンドポイントを除外しました/wp/v2。現在、カスタム投稿タイプのみが公開されています。そしてもちろん `wp-json 'プレフィックス。
violacase 2016年

これが@violacaseで機能しない解決策を見つけたことがありますか?
rorymorris89

回答:


8

WordPressの現在のバージョンでは、json_url_prefixフィルターの使用は機能しないことに注意してください。

WordPress 4.7(およびプラグインの代わりにコアからREST APIを使用)では、これがAPIプレフィックスを変更するために必要なものです。

add_filter( 'rest_url_prefix', 'my_theme_api_slug'); 
function my_theme_api_slug( $slug ) { return 'api'; }

これがすぐに機能しない場合は、書き換えルールをフラッシュする必要があります。このコードを実行するために一度実行することができます(コード内に残して、毎回実行しないようにしてください)。

flush_rewrite_rules(true);

さらに、phpを使用して特定の古いエンドポイントにカールしてプロシージャを作成し、それがまだ機能しているかどうかを確認してから、それがあなたの時間ですflush_rewrite_rules(true);が、curl応答がが機能していることを示している場合は、apiフラッシュする必要はありません
Abel Melquiades Callejo

0

json_url_prefixフックを使用して、'wp-json'すべてのAPIルートを削除できます。以下の例はあなたの質問の例を実行します:

add_filter( 'json_url_prefix', 'my_theme_api_slug'); 
function my_theme_api_slug( $slug ) { 
    return 'mistified';
}

これを機能させることができません。おそらく、再洗浄の問題ですか?
ビオラケース16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.