rest_api_init フックの使い方|説明・引数・注意点

説明

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を、取得する

関連項目

register_rest_route()

公式リファレンス:rest_api_init | WordPress Developer Resources

コメント

タイトルとURLをコピーしました