説明
rest_api_init は、REST APIの初期化時に実行されるアクションです。独自エンドポイントの登録に使います。
基本構文
do_action( 'rest_api_init', WP_REST_Server $wp_rest_server )
引数
$wp_rest_server:REST サーバーのオブジェクト
戻り値
コールバックにはサーバーオブジェクトが渡されます。
使い方(サンプル)
add_action( 'rest_api_init', function() {
register_rest_route( 'my/v1', '/hello', array(
'methods' => 'GET',
'callback' => '__return_true',
'permission_callback' => '__return_true',
) );
} );
注意点
register_rest_route()は、このフックの中で呼びます。
実務での使いどころ
- 独自のREST APIのエンドポイントを、登録するとき。
よくあるミスと対処
initなど、別のフックで、register_rest_route()を呼んでいる。ルートの登録は、rest_api_initで行う。- このフックが、すべてのページの表示で、実行されると考えている。REST APIのリクエストのときに、実行される。
permission_callbackを、指定していない。
NG例
add_action( 'init', function () {
register_rest_route( 'my/v1', '/items', array( 'methods' => 'GET', 'callback' => 'my_items' ) ); // permission_callback もない
} );
OK例
add_action( 'rest_api_init', function () {
register_rest_route( 'my-plugin/v1', '/items', array(
'methods' => 'GET',
'callback' => 'my_items',
'permission_callback' => '__return_true',
) );
} );
使い分け早見表
| 関数・フック | 役割 |
|---|---|
rest_api_init |
REST APIの初期化のとき(ルートを登録する場所) |
register_rest_route() |
ルートを、登録する |
rest_url() |
REST APIのURLを、取得する |

コメント