WP REST APIのエンドポイントをwp-json以外にする

WP REST APIのデフォルトエンドポイントはhttp://example.com/wp-jsonですが、変更することが可能です。
ここで紹介するコードはWordPress4.4以降であればコア実装されている関数を利用しているので、WP REST APIプラグインは特に必要ありません。

コード

add_filter( 'rest_url_prefix', 'another-prefix');

2つめの引数に入れた値がプレフィックスになるので、上のコードだとhttp://example.com/another-prefixになります。

使いどころ

基本的に特に変えなければ困るということはないかと思います。
勝手にwp-jsonへのリクエストが送られていてサーバー負荷辛いとか、独自のAPIエンドポイントっぽくしたい時とかに使う感じでしょうかね。

プレフィックスだけ取得したい場合

$prefix = rest_get_url_prefix();
echo $prefix;

これで現在設定されているプレフィックスを取得できます。

元コード

function rest_get_url_prefix() {
    /**
     * Filter the REST URL prefix.
     *
     * @since 4.4.0
     *
     * @param string $prefix URL prefix. Default 'wp-json'.
     */
    return apply_filters( 'rest_url_prefix', 'wp-json' );
}

最終行にフィルターフックが設置されているので、add_filterするとここの値が書き換えられるということですね。

Follow me!