概要
elementor/documents/register_controls
は、Elementorのドキュメントに独自のコントロールを追加する際に利用されるアクションフックです。このフックを使用すると、ユーザーがカスタマイズ可能なフィールドやオプションを追加することができ、Elementorでの作業をより柔軟にすることができます。このフックは、特に次のような機能を追加する際に役立ちます。
- カスタム設定の追加
- ウィジェットに対するスタイルオプションの拡張
- セクションやコラムの追加アトリビュートの設定
- カスタムテンプレートのオプションの実装
- 特定のユーザー権限に基づいた設定の制御
- 管理画面のユーザーインターフェースの拡張
構文
add_action( 'elementor/documents/register_controls', function( $document ) {
// 追加のコントロールをここに記述
});
パラメータ
$document
(ElementorDocument): 現在のドキュメントインスタンス。
戻り値
このアクションは戻り値を持たないため、何も返しません。
使用可能なバージョン
- Elementor: 2.0以上
- WordPress: 5.0以上
サンプルコード
サンプル1: カスタムテキストフィールドの追加
このサンプルでは、カスタムテキストフィールドをElementorのセクションに追加しています。
add_action('elementor/documents/register_controls', function($document) {
$document->start_controls_section(
'custom_section',
[
'label' => __('Custom Section', 'plugin-name'),
'tab' => 'tab_general',
]
);
$document->add_control(
'custom_text',
[
'label' => __('Custom Text', 'plugin-name'),
'type' => ElementorControls_Manager::TEXT,
'default' => __('Default Text', 'plugin-name'),
]
);
$document->end_controls_section();
});
引用元: https://developer.wordpress.org/plugins/
サンプル2: カスタムスイッチャーの追加
このサンプルは、カスタムのスイッチャーオプションを追加しています。
add_action('elementor/documents/register_controls', function($document) {
$document->start_controls_section(
'switcher_section',
[
'label' => __('Switcher Section', 'plugin-name'),
'tab' => 'tab_style',
]
);
$document->add_control(
'custom_switcher',
[
'label' => __('Toggle Option', 'plugin-name'),
'type' => ElementorControls_Manager::SWITCHER,
'label_on' => __('Yes', 'plugin-name'),
'label_off' => __('No', 'plugin-name'),
'return_value' => 'yes',
'default' => 'no',
]
);
$document->end_controls_section();
});
引用元: https://elementor.com/developers/
サンプル3: カスタム色選択フィールドの追加
ここでは、カスタムの色選択フィールドをElementorに追加する例です。
add_action('elementor/documents/register_controls', function($document) {
$document->start_controls_section(
'color_section',
[
'label' => __('Color Options', 'plugin-name'),
'tab' => 'tab_style',
]
);
$document->add_control(
'primary_color',
[
'label' => __('Primary Color', 'plugin-name'),
'type' => ElementorControls_Manager::COLOR,
'default' => '#FF0000',
]
);
$document->end_controls_section();
});
引用元: https://developer.elementor.com/
サンプル4: スライダーコントロールの実装
このサンプルでは、スライダーコントロールを追加して、数値を選択できるようにしています。
add_action('elementor/documents/register_controls', function($document) {
$document->start_controls_section(
'slider_section',
[
'label' => __('Slider Settings', 'plugin-name'),
'tab' => 'tab_content',
]
);
$document->add_control(
'number_of_items',
[
'label' => __('Number of Items', 'plugin-name'),
'type' => ElementorControls_Manager::SLIDER,
'default' => [
'size' => 5,
],
'range' => [
'min' => 1,
'max' => 10,
'step' => 1,
],
]
);
$document->end_controls_section();
});
引用元: https://www.wpbeaverbuilder.com/
サンプル5: リストボックスの追加
このサンプルでは、リストボックスから選択肢を選べるようにしています。
add_action('elementor/documents/register_controls', function($document) {
$document->start_controls_section(
'dropdown_section',
[
'label' => __('Dropdown Options', 'plugin-name'),
'tab' => 'tab_content',
]
);
$document->add_control(
'select_option',
[
'label' => __('Select Option', 'plugin-name'),
'type' => ElementorControls_Manager::SELECT,
'options' => [
'option1' => __('Option 1', 'plugin-name'),
'option2' => __('Option 2', 'plugin-name'),
],
'default' => 'option1',
]
);
$document->end_controls_section();
});
引用元: https://elementor.com/blog/
この関数のアクションでの使用可能性
アクション | 使用可能 |
---|---|
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 |