説明
register_rest_route() は、独自のREST APIエンドポイントを登録する関数です。
基本構文
register_rest_route( string $route_namespace, string $route, array $args = array(), bool $override = false ): bool
引数
$route_namespace:名前空間(例:myplugin/v1)$route:ルート(例:/items)$args:methods、callback、permission_callbackなど
戻り値
登録できたら true。
使い方(サンプル)
add_action( 'rest_api_init', function() {
register_rest_route( 'myplugin/v1', '/hello', array(
'methods' => 'GET',
'callback' => fn() => array( 'message' => 'hello' ),
'permission_callback' => '__return_true',
) );
} );
注意点
rest_api_initフックで呼びます。permission_callbackは必須です(省略するとWordPress 5.5以降で警告が出ます)。公開エンドポイントでも__return_trueを明示します。
実務での使いどころ
- 独自のREST APIのエンドポイントを、追加するとき。
- JavaScriptや、外部のアプリから呼ぶ、APIを作るとき。
よくあるミスと対処
rest_api_initフックの外で呼んでいる。permission_callbackを指定していない。WordPress 5.5以降は、未指定だと、警告になる。公開してよいAPIでは、'__return_true'を指定する。- 名前空間(
my-plugin/v1)を、決めていない。他のプラグインと、重なる。 - 入力値を、
argsのvalidate_callback・sanitize_callbackで、検証していない。
NG例
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',
) );
} );
使い分け早見表
| 関数 | 役割 |
|---|---|
register_rest_route() |
エンドポイントを登録する |
rest_url() |
REST APIのURLを取得する |
rest_ensure_response() |
戻り値を、REST用の応答に整える |
関連項目
rest_ensure_response()、rest_url()、wp_send_json()
公式リファレンス:register_rest_route() | Function | WordPress Developer Resources

コメント