プラグインElementorのelementor/api/get_templates/body_argsフィルタの使用方法・解説

概要

elementor/api/get_templates/body_args は、Elementor プラグインにおいて、テンプレート API のリクエストボディを調整するために使用されるフィルタです。このフィルタを使用すると、API のリクエストパラメータをカスタマイズし、特定のユーザーニーズに応じたテンプレート取得を行うことができます。一般的に以下のような機能を実装する際に役立ちます。

  1. カスタムテンプレートフィルタリング
  2. テンプレート取得条件の追加
  3. ユーザー権限に基づくテンプレートの制限
  4. テンプレートリストの並び替え
  5. 特定のテンプレートタイプの取得
  6. API レスポンスデータのカスタマイズ

構文

add_filter( 'elementor/api/get_templates/body_args', 'your_custom_function' );

パラメータ

  • $body_args: リクエストボディの配列。この配列には、取得するテンプレートに関する情報が含まれます。

戻り値

  • 修正されたリクエストボディの配列。

互換性

  • Elementor バージョン: 3.0 以降
  • WordPress バージョン: 5.0 以降

サンプルコード

サンプル1: カスタムフィルタリング

add_filter( 'elementor/api/get_templates/body_args', function( $body_args ) {
    $body_args['categories'] = ['custom_category'];
    return $body_args;
} );

このサンプルコードは、API のリクエストにカスタムカテゴリーを追加し、特定のカテゴリーに属するテンプレートのみを取得します。

サンプル2: ユーザーロールによる制限

add_filter( 'elementor/api/get_templates/body_args', function( $body_args ) {
    if ( ! current_user_can( 'administrator' ) ) {
        $body_args['status'] = 'publish';
    }
    return $body_args;
} );

このサンプルでは、管理者以外のユーザーには公開されたテンプレートのみを取得できるようにリクエストを制限しています。

サンプル3: テンプレートの並び替え

add_filter( 'elementor/api/get_templates/body_args', function( $body_args ) {
    $body_args['orderby'] = 'date';
    $body_args['order'] = 'DESC';
    return $body_args;
} );

ここでは、取得するテンプレートを日付の降順で並び替えるために、リクエストパラメータを変更しています。

サンプル4: 特定のテンプレートタイプの取得

add_filter( 'elementor/api/get_templates/body_args', function( $body_args ) {
    $body_args['type'] = 'page_template';
    return $body_args;
} );

このコードは、ページテンプレートのみを取得するためにリクエストを調整しています。

サンプル5: API レスポンスのカスタマイズ

add_filter( 'elementor/api/get_templates/body_args', function( $body_args ) {
    $body_args['fields'] = 'id,title';
    return $body_args;
} );

ここでは、API レスポンスに含めるフィールドを ID とタイトルのみに制限し、データ量を軽減しています。

この関数のアクションでの使用可能性

アクション 使用可能性
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

この表に示すように、elementor/api/get_templates/body_args フィルタは特定のアクションでの使用が考えられますが、主要なフックとしては WordPress の初期化プロセスに関連する部分での利用が一般的です。

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


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