概要
elementor/api/get_templates/body_args
は、Elementor プラグインにおいて、テンプレート API のリクエストボディを調整するために使用されるフィルタです。このフィルタを使用すると、API のリクエストパラメータをカスタマイズし、特定のユーザーニーズに応じたテンプレート取得を行うことができます。一般的に以下のような機能を実装する際に役立ちます。
- カスタムテンプレートフィルタリング
- テンプレート取得条件の追加
- ユーザー権限に基づくテンプレートの制限
- テンプレートリストの並び替え
- 特定のテンプレートタイプの取得
- 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 の初期化プロセスに関連する部分での利用が一般的です。