プラグインElementorのelementor/documents/register_controlsアクションの使用方法・解説

概要

elementor/documents/register_controlsは、Elementorのドキュメントに独自のコントロールを追加する際に利用されるアクションフックです。このフックを使用すると、ユーザーがカスタマイズ可能なフィールドやオプションを追加することができ、Elementorでの作業をより柔軟にすることができます。このフックは、特に次のような機能を追加する際に役立ちます。

  1. カスタム設定の追加
  2. ウィジェットに対するスタイルオプションの拡張
  3. セクションやコラムの追加アトリビュートの設定
  4. カスタムテンプレートのオプションの実装
  5. 特定のユーザー権限に基づいた設定の制御
  6. 管理画面のユーザーインターフェースの拡張

構文

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

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


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