Добавить управление в подпанели виджетов в кастомизаторе

Вопрос или проблема

Возможно ли добавить элементы управления в подпанели панели виджетов в кастомизаторе? Если да, то как к ним обращаться? Область виджетов будет называться “top-widget-area”

Ни одно из обращений:

'panel' => 'widgets-top-widget-area'

или

'section' => 'widgets-top-widget-area'

в $wp_customize->add_control не работает.

У вас есть идеи?

Оказывается, секция будет обращаться с помощью ‘section’ => ‘sidebar-widgets-top-widget-area’ … так что вам нужно добавить sidebar-widgets- перед названием области виджетов.

Однако, так как это панель виджетов, все, кроме активных областей виджетов на странице, на которой вы находитесь, установлены на display: none; и должны быть установлены на: display: block !important;

@richwp, я задал похожий вопрос и получил подробный ответ от Уэстона Рутера, который на самом деле работает над панелью кастомизатора виджетов в ядре. Он создал статью, видео и репозиторий на github с исходным кодом, чтобы ответить на мой вопрос (что было замечательным поступком). Вот ссылка на статью, которую он написал: [ссылка]https://make.xwp.co/2017/02/08/adding-meta-fields-to-a-widget-sidebar-section-in-the-customizer/

Ответ или решение

Чтобы добавить элементы управления в подпанель виджетов в настройщике WordPress, действительно возможно, и, как вы заметили, есть несколько нюансов, касающихся корректного обращения к секциям и панелям.

Шаги для добавления управления в подпанель виджетов

  1. Идентификация секции: Первое, что нужно сделать, это правильно определить идентификатор секции, в которую вы хотите добавить элементы управления. Для области виджетов "top-widget-area" правильный идентификатор будет формата sidebar-widgets-top-widget-area.

  2. Использование WP Customizer API: Для добавления управления в секцию используйте метод add_control в классе $wp_customize. Пример кода для этого может выглядеть следующим образом:

    function my_customizer_controls( $wp_customize ) {
        // Добавляем секцию для вашего виджета
        $wp_customize->add_section( 'sidebar-widgets-top-widget-area', array(
            'title'      => __( 'Top Widget Area', 'тема' ),
            'priority'   => 30,
        ) );
    
        // Добавляем элементы управления
        $wp_customize->add_setting( 'my_custom_setting', array(
            'default'   => '',
            'sanitize_callback' => 'sanitize_text_field',
        ) );
    
        $wp_customize->add_control( 'my_custom_setting', array(
            'label'     => __( 'Мой собственный элемент управления', 'тема' ),
            'section'   => 'sidebar-widgets-top-widget-area',
            'type'      => 'text',
        ) );
    }
    add_action( 'customize_register', 'my_customizer_controls' );
  3. Стилизация для отображения: Так как в настройщике WordPress комнаты для неактивных виджетов по умолчанию имеют стиль display: none, вам, возможно, придется изменить CSS-стили для ваших элементов управления. Это можно сделать с помощью встроенного кода или подключения CSS-файла. Например:

    function my_customizer_css() {
        ?>
        <style>
            .customize-control { display: block !important; }
        </style>
        <?php
    }
    add_action( 'wp_footer', 'my_customizer_css' );
  4. Документация и ресурсы: Вам также может быть полезно обратиться к материалам, созданным разработчиком WordPress, Уэстоном Рутером. Его статьи и репозиторий на GitHub содержат ценные ориентиры по работе с панелями виджетов в настройщике. Вы можете найти информацию по следующей ссылке: Ссылка на гитхаб.

Заключение

Добавление контролов в подпанель виджетов в WordPress — это относительно простая, но многогранная задача. Важно правильно понимать структуру идентификаторов секций и стилей, чтобы все работало корректно. Следуя изложенным шагам, вы сможете успешно расширить функциональность вашего виджетного интерфейса в настройщике.

Если у вас возникнут дополнительные вопросы или вам потребуется дальнейшая помощь, не стесняйтесь обращаться к сообществу разработчиков или задавать вопросы на форумах, посвященных WordPress. Удачи в ваших разработках!

Оцените материал
Добавить комментарий

Капча загружается...