概要
bcn_register_rest_endpoint
は、WordPressのREST APIにBreadcrumb NavXTのパンくずリストデータを追加するためのフックです。このアクションを使用することによって、パンくずリストをRESTクライアントやJavaScriptアプリケーションからアクセスできるようにすることができます。
このフックは、以下のような機能を実装する際によく使用されます。
- パンくずリストのデータを取得するためのRESTエンドポイントを追加
- ショートコードでパンくずナビゲーションを動的に生成
- 特定の投稿やページに関連するパンくず情報を提供
- カスタムヘッダーやフッターにパンくずリストを挿入
- フロントエンドのJavaScriptフレームワークでパンくずリストを簡単に取り扱えるようにする
- モバイルアプリケーションでのパンくずナビゲーションサポート
このアクションは、Breadcrumb NavXTのバージョンが6.0以上、WordPressのバージョンが5.0以上で使用可能です。
構文
add_action('bcn_register_rest_endpoint', 'your_function_name');
パラメータ
このアクションはパラメータを持たず、RESTエンドポイントを登録するためのカスタム処理を行う関数を指定します。
戻り値
このアクションは特に戻り値を持ちません。主に副作用(RESTエンドポイントの登録)を担います。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: 基本的なRESTエンドポイントの追加
add_action('bcn_register_rest_endpoint', 'add_breadcrumbs_to_rest_api');
function add_breadcrumbs_to_rest_api() {
register_rest_route('breadcrumbs/v1', '/items/', array(
'methods' => 'GET',
'callback' => 'get_breadcrumbs',
));
}
このサンプルコードは、REST APIに「breadcrumbs/v1/items」というエンドポイントを追加し、GETリクエストによってパンくずリストのデータを取得できるようにします。
サンプル2: カスタムデータを含むRESTエンドポイントの登録
add_action('bcn_register_rest_endpoint', 'custom_breadcrumb_endpoints');
function custom_breadcrumb_endpoints() {
register_rest_route('custom/breadcrumbs', '/data/', array(
'methods' => 'GET',
'callback' => 'custom_breadcrumb_callback',
'permission_callback' => '__return_true',
));
}
このコードは、「custom/breadcrumbs/data」というカスタムエンドポイントを作成し、全てのユーザーがアクセス可能にしています。特定のデータを返すカスタムコールバック関数が必要です。
サンプル3: 認証を必要とするRESTエンドポイントの追加
add_action('bcn_register_rest_endpoint', 'secured_breadcrumbs_endpoint');
function secured_breadcrumbs_endpoint() {
register_rest_route('secured/breadcrumbs', '/items/', array(
'methods' => 'GET',
'callback' => 'secured_breadcrumbs_callback',
'permission_callback' => 'is_user_logged_in',
));
}
このサンプルでは、ログインユーザーのみがアクセス可能なエンドポイントを設定しています。認証機能を追加することで、特定のユーザーに対する制御が可能です。
サンプル4: パンくずリストをJSON形式で返すエンドポイントの作成
add_action('bcn_register_rest_endpoint', 'json_breadcrumbs_endpoint');
function json_breadcrumbs_endpoint() {
register_rest_route('json/breadcrumbs', '/list/', array(
'methods' => 'GET',
'callback' => 'return_breadcrumbs_as_json',
));
}
このコードは、「json/breadcrumbs/list」エンドポイントを作成し、パンくずリストをJSON形式で返すコールバック関数を指定します。
サンプル5: 問い合わせパラメータを処理するRESTエンドポイント
add_action('bcn_register_rest_endpoint', 'parametrized_breadcrumbs');
function parametrized_breadcrumbs() {
register_rest_route('param/breadcrumbs', '/{id}/', array(
'methods' => 'GET',
'callback' => 'get_breadcrumbs_by_id',
'args' => array(
'id' => array(
'required' => true,
'validate_callback' => function($param, $request, $key) {
return is_numeric($param);
},
),
),
));
}
このサンプルでは、URLパラメータを使って特定のIDに関連するパンくず情報を取得するエンドポイントを作成します。入力のバリデーションも行っています。