プラグインBreadcrumb NavXTのbcn_register_rest_endpointアクションの使用方法・解説

概要

bcn_register_rest_endpointは、WordPressのREST APIにBreadcrumb NavXTのパンくずリストデータを追加するためのフックです。このアクションを使用することによって、パンくずリストをRESTクライアントやJavaScriptアプリケーションからアクセスできるようにすることができます。

このフックは、以下のような機能を実装する際によく使用されます。

  1. パンくずリストのデータを取得するためのRESTエンドポイントを追加
  2. ショートコードでパンくずナビゲーションを動的に生成
  3. 特定の投稿やページに関連するパンくず情報を提供
  4. カスタムヘッダーやフッターにパンくずリストを挿入
  5. フロントエンドのJavaScriptフレームワークでパンくずリストを簡単に取り扱えるようにする
  6. モバイルアプリケーションでのパンくずナビゲーションサポート

このアクションは、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に関連するパンくず情報を取得するエンドポイントを作成します。入力のバリデーションも行っています。

この関数について質問する


上の計算式の答えを入力してください