WP_Customize_Widgets

Класс для работы с виджетами в пользовательском интерфейсе
Класс WordPress
INT 3.9.0
WordPress Icon
Содержание
  1. Описание класса
  2. Методы
  3. call_widget_update()
  4. capture_filter_pre_get_option()
  5. capture_filter_pre_update_option()
  6. count_captured_options()
  7. customize_controls_init()
  8. customize_dynamic_partial_args()
  9. customize_preview_enqueue()
  10. customize_preview_init()
  11. customize_register()
  12. end_dynamic_sidebar()
  13. enqueue_scripts()
  14. export_preview_data()
  15. filter_customize_dynamic_setting_args()
  16. filter_customize_value_old_sidebars_widgets_data()
  17. filter_dynamic_sidebar_params()
  18. filter_option_sidebars_widgets_for_theme_switch()
  19. filter_sidebars_widgets_for_rendering_widget()
  20. filter_wp_kses_allowed_data_attributes()
  21. get_available_widgets()
  22. get_captured_option()
  23. get_captured_options()
  24. get_instance_hash_key()
  25. get_post_value()
  26. get_selective_refreshable_widgets()
  27. get_setting_args()
  28. get_setting_id()
  29. get_setting_type()
  30. get_widget_control()
  31. get_widget_control_parts()
  32. is_option_capture_ignored()
  33. is_panel_active()
  34. is_sidebar_rendered()
  35. is_wide_widget()
  36. is_widget_rendered()
  37. is_widget_selective_refreshable()
  38. output_widget_control_templates()
  39. override_sidebars_widgets_for_theme_switch()
  40. parse_widget_id()
  41. parse_widget_setting_id()
  42. prepreview_added_sidebars_widgets()
  43. prepreview_added_widget_instance()
  44. preview_sidebars_widgets()
  45. print_footer_scripts()
  46. print_preview_css()
  47. print_scripts()
  48. print_styles()
  49. refresh_nonces()
  50. register_settings()
  51. remove_prepreview_filters()
  52. render_widget_partial()
  53. sanitize_sidebar_widgets()
  54. sanitize_sidebar_widgets_js_instance()
  55. sanitize_widget_instance()
  56. sanitize_widget_js_instance()
  57. schedule_customize_register()
  58. selective_refresh_init()
  59. setup_widget_addition_previews()
  60. should_load_block_editor_scripts_and_styles()
  61. start_capturing_option_updates()
  62. start_dynamic_sidebar()
  63. stop_capturing_option_updates()
  64. tally_rendered_widgets()
  65. tally_sidebars_via_dynamic_sidebar_calls()
  66. tally_sidebars_via_is_active_sidebar_calls()
  67. wp_ajax_update_widget()
  68. _sort_name_callback()
  69. __construct()
  70. Примеры использования
  71. Инициализация класса WP_Customize_Widgets
  72. Сортировка доступных виджетов по имени
  73. Вызов обновления и управления виджетами
  74. Предварительная фильтрация значений захваченных опций
  75. Подсчет захваченных обновлений опций виджетов
  76. Регистрация настроек и элементов управления Customizer для боковых панелей и виджетов
  77. Завершение отслеживания текущей боковой панели
  78. Подключение скриптов для предварительного просмотра Customizer
  79. Добавление хуков для предварительного просмотра Customizer
  80. Получение доступных виджетов
  81. Получение захваченной опции
  82. Определение активности панели виджетов
  83. Определение отображения боковой панели
  84. Определение отображения виджета
  85. Определение поддержки выборочного обновления виджета
  86. Вывод шаблонов элементов управления виджетами
  87. Переопределение боковых панелей для смены темы
  88. Преобразование ID виджета
  89. Преобразование ID настроек виджета
  90. Предварительное добавление боковых панелей и виджетов
  91. Обновление виджета асинхронно
  92. Вопросы и ответы
  93. Как добавить новый виджет в Customizer?
  94. Как изменить настройки виджета в Customizer?
  95. Как удалить виджет из Customizer?
  96. Как изменить порядок виджетов в Customizer?
  97. Как настроить селективное обновление виджетов в Customizer?
  98. Как настроить виджеты для разных сайдбаров в Customizer?
  99. Как настроить виджеты для разных тем в Customizer?
  100. Как настроить ширину виджетов в Customizer?
  101. Как настроить скрипты и стили для Customizer панели и предпросмотра?

Описание класса

Класс WP_Customize_Widgets представляет собой расширение класса WP_Customize_Manager и отвечает за управление виджетами в пользовательском интерфейсе настройки темы (Customizer) в WordPress.

Основное назначение класса WP_Customize_Widgets — предоставить возможность настройки виджетов в реальном времени, без необходимости перезагрузки страницы. Класс обеспечивает функциональность добавления, удаления, изменения и управления виджетами через пользовательский интерфейс Customizer.

Методы

  • __construct() — Инициализация загрузчика.
  • _sort_name_callback() — Естественная сортировка доступных виджетов по имени.
  • call_widget_update() — Находит и вызывает обратные вызовы обновления и управления виджетами.
  • capture_filter_pre_get_option() — Предварительно фильтрует захваченные значения опций перед получением.
  • capture_filter_pre_update_option() — Предварительно фильтрует захваченные значения опций перед обновлением.
  • count_captured_options() — Возвращает количество захваченных обновлений опций виджетов.
  • customize_controls_init() — Гарантирует загрузку всех виджетов в пользовательский интерфейс Customizer.
  • customize_dynamic_partial_args() — Фильтрует аргументы для динамических частичных виджетов.
  • customize_preview_enqueue() — Подключает скрипты для предварительного просмотра Customizer.
  • customize_preview_init() — Добавляет хуки для предварительного просмотра Customizer.
  • customize_register() — Регистрирует настройки и элементы управления Customizer для всех боковых панелей и виджетов.
  • end_dynamic_sidebar() — Завершает отслеживание текущей боковой панели, которая рендерится.
  • enqueue_scripts() — Подключает скрипты и стили для панели Customizer и экспортирует данные в JavaScript.
  • export_preview_data() — Коммуницирует боковые панели, которые появились на странице в самом конце страницы и в самом конце wp_footer.
  • filter_customize_dynamic_setting_args() — Определяет аргументы для динамически созданной настройки.
  • filter_customize_value_old_sidebars_widgets_data() — Фильтрует настройку Customizer old_sidebars_widgets_data.
  • filter_dynamic_sidebar_params() — Внедряет атрибуты данных для выборочного обновления в элементы контейнера виджетов.
  • filter_option_sidebars_widgets_for_theme_switch() — Фильтрует опцию sidebars_widgets для смены темы.
  • filter_sidebars_widgets_for_rendering_widget() — Фильтрует опцию sidebars_widgets, чтобы убедиться, что в текущей боковой панели есть только текущий виджет.
  • filter_wp_kses_allowed_data_attributes() — Гарантирует, что HTML-атрибуты данных для выборочного обновления разрешены kses.
  • get_available_widgets() — Строит индекс всех доступных виджетов для использования в моделях Backbone.
  • get_captured_option() — Получает опцию, которая была захвачена для сохранения.
  • get_captured_options() — Получает захваченные обновления опций виджетов.
  • get_instance_hash_key() — Получает MAC для сериализованной строки экземпляра виджета.
  • get_post_value() — Получает значение поста без экранирования или возвращает значение по умолчанию.
  • get_selective_refreshable_widgets() — Указывает, может ли каждый зарегистрированный виджет использовать выборочное обновление.
  • get_setting_args() — Получает общие аргументы для создания настройки Customizer.
  • get_setting_id() — Преобразует widget_id в соответствующий ID настройки Customizer (имя опции).
  • get_setting_type() — Получает тип настройки виджета по заданному ID настройки.
  • get_widget_control() — Получает разметку элемента управления виджета.
  • get_widget_control_parts() — Получает разметку элемента управления виджета в виде частей.
  • is_option_capture_ignored() — Определяет, следует ли игнорировать захваченное обновление опции.
  • is_panel_active() — Определяет, активна ли панель виджетов на основе наличия зарегистрированных боковых панелей.
  • is_sidebar_rendered() — Определяет, рендерится ли боковая панель на странице.
  • is_wide_widget() — Определяет, считается ли виджет «широким».
  • is_widget_rendered() — Определяет, рендерится ли виджет на странице.
  • is_widget_selective_refreshable() — Определяет, поддерживает ли виджет выборочное обновление.
  • output_widget_control_templates() — Рендерит шаблоны элементов управления виджетов в DOM.
  • override_sidebars_widgets_for_theme_switch() — Переопределяет sidebars_widgets для смены темы.
  • parse_widget_id() — Преобразует ID виджета в его компоненты id_base и number.
  • parse_widget_setting_id() — Преобразует ID настройки виджета (путь к опции) в его компоненты id_base и number.
  • prepreview_added_sidebars_widgets() — {@internal Отсутствует описание} — устарело.
  • prepreview_added_widget_instance() — {@internal Отсутствует описание} — устарело.
  • preview_sidebars_widgets() — При предварительном просмотре гарантирует использование правильных виджетов для предварительного просмотра.
  • print_footer_scripts() — Вызывает хуки admin_print_footer_scripts и admin_print_scripts для разрешения пользовательских скриптов из плагинов.
  • print_preview_css() — Вставляет стиль по умолчанию для выделенного виджета на раннем этапе, чтобы таблица стилей темы могла его переопределить.
  • print_scripts() — Вызывает хуки admin_print_scripts-widgets.php и admin_print_scripts для разрешения пользовательских скриптов из плагинов.
  • print_styles() — Вызывает хуки admin_print_styles-widgets.php и admin_print_styles для разрешения пользовательских стилей из плагинов.
  • refresh_nonces() — Обновляет nonce для обновления виджетов.
  • register_settings() — Анализирует входящие настраиваемые данные для любых настроек виджетов и динамически добавляет их заранее, чтобы виджеты были правильно инициализированы.
  • remove_prepreview_filters() — {@internal Отсутствует описание} — устарело.
  • render_widget_partial() — Рендерит конкретный виджет с использованием предоставленных аргументов боковой панели.
  • sanitize_sidebar_widgets() — Гарантирует, что массивы виджетов боковой панели содержат только идентификаторы виджетов.
  • sanitize_sidebar_widgets_js_instance() — Удаляет идентификаторы виджетов для виджетов, которые больше не зарегистрированы.
  • sanitize_widget_instance() — Очищает экземпляр виджета.
  • sanitize_widget_js_instance() — Преобразует экземпляр виджета в формат JSON.
  • schedule_customize_register() — Гарантирует доступность виджетов для всех типов предварительного просмотра.
  • selective_refresh_init() — Добавляет хуки для выборочного обновления.
  • setup_widget_addition_previews() — {@internal Отсутствует описание} — устарело.
  • should_load_block_editor_scripts_and_styles() — Сообщает загрузчику скриптов о необходимости загрузки скриптов и стилей пользовательских блоков, если включен редактор виджетов.
  • start_capturing_option_updates() — Начинает отслеживание изменений опций виджетов и кэширование новых значений.
  • start_dynamic_sidebar() — Начинает отслеживание текущей боковой панели, которая рендерится.
  • stop_capturing_option_updates() — Отменяет все изменения опций, произошедшие с момента начала отслеживания.
  • tally_rendered_widgets() — Отслеживает виджеты, которые были отрисованы.
  • tally_sidebars_via_dynamic_sidebar_calls() — Подсчитывает боковые панели, отрисованные с помощью dynamic_sidebar().
  • tally_sidebars_via_is_active_sidebar_calls() — Подсчитывает боковые панели, отрисованные с помощью is_active_sidebar().
  • wp_ajax_update_widget() — Асинхронно обновляет настройки виджета.

Методы

call_widget_update()

Метод call_widget_update() класса WP_Customize_Widgets находит и вызывает обновление виджета и обратные вызовы управления.

WP_Customize_Widgets::call_widget_update( string $widget_id ): array|WP_Error

Метод call_widget_update() принимает один обязательный параметр:

  • $widget_id (string) — Идентификатор виджета.

$widget_id (string) — Обязательный. Идентификатор виджета.

Метод call_widget_update() возвращает массив с обновленной информацией о виджете. Если возникла ошибка, возвращается объект WP_Error.


/**
 * Пример использования метода call_widget_update().
 *
 * @param string $widget_id Идентификатор виджета.
 *
 * @return array|WP_Error Массив с обновленной информацией о виджете или объект WP_Error в случае ошибки.
 */
function example_call_widget_update( $widget_id ) {
  // Вызываем метод call_widget_update() с переданным идентификатором виджета.
  $updated_widget_info = WP_Customize_Widgets::call_widget_update( $widget_id );
  // Возвращаем обновленную информацию о виджете.
  return $updated_widget_info;
}

capture_filter_pre_get_option()

Метод capture_filter_pre_get_option() является методом класса WP_Customize_Widgets, который предназначен для предварительной фильтрации захваченных значений опций перед их получением.

Данный метод работает путем применения фильтра к значению опции, которое будет возвращено, вместо фактического значения опции.

Метод используется для изменения или модификации значений опций, которые будут возвращены при использовании функции get_option().

WP_Customize_Widgets::capture_filter_pre_get_option( mixed $value ): mixed

Метод capture_filter_pre_get_option() принимает один обязательный параметр:

  • $value (mixed) — Значение, которое будет возвращено вместо значения опции.

$value (mixed) — Обязательный параметр. Значение, которое будет возвращено вместо значения опции.

Метод capture_filter_pre_get_option() возвращает отфильтрованное значение опции.

<code>/**
 * Пример использования метода capture_filter_pre_get_option()
 *
 * @param mixed $value Значение, которое будет возвращено вместо значения опции.
 * @return mixed Отфильтрованное значение опции.
 */
WP_Customize_Widgets::capture_filter_pre_get_option( $value );</code>

capture_filter_pre_update_option()

Метод capture_filter_pre_update_option() является методом класса WP_Customize_Widgets. Он предназначен для предварительной фильтрации значений захваченных опций перед их обновлением.

Метод работает следующим образом: перед обновлением опции, он принимает новое значение опции, имя опции и старое значение опции. Затем метод фильтрует новое значение опции и возвращает отфильтрованное значение.

Метод capture_filter_pre_update_option() используется для обработки значений опций, которые были захвачены в процессе обновления. Он позволяет изменить или проверить значения опций перед их сохранением.

WP_Customize_Widgets::capture_filter_pre_update_option( mixed $new_value, string $option_name, mixed $old_value ): mixed

Метод capture_filter_pre_update_option() принимает три параметра:

  • $new_value (mixed) — Новое значение опции. Обязательный параметр.
  • $option_name (string) — Имя опции. Обязательный параметр.
  • $old_value (mixed) — Старое значение опции. Обязательный параметр.

Метод capture_filter_pre_update_option() возвращает отфильтрованное значение опции.


/**
 * Пример использования метода capture_filter_pre_update_option()
 *
 * @param mixed  $new_value    Новое значение опции.
 * @param string $option_name  Имя опции.
 * @param mixed  $old_value    Старое значение опции.
 *
 * @return mixed  Отфильтрованное значение опции.
 */
function example_capture_filter_pre_update_option( $new_value, $option_name, $old_value ) {
    // Ваш код обработки значений опции
    
    // Возвращаем отфильтрованное значение опции
    return $new_value;
}

count_captured_options()

Метод count_captured_options() класса WP_Customize_Widgets используется для получения количества обновленных опций виджетов.

WP_Customize_Widgets::count_captured_options()

Этот код используется для вызова метода count_captured_options() класса WP_Customize_Widgets.

Метод count_captured_options() возвращает целое число — количество обновленных опций.

customize_controls_init()

Метод customize_controls_init() является статическим методом класса WP_Customize_Widgets. Он используется для загрузки всех виджетов в пользовательский интерфейс настройки (Customizer) WordPress.

Этот метод гарантирует, что все виджеты будут доступны в пользовательском интерфейсе настройки, что позволяет разработчикам вносить изменения в виджеты и их настройки в реальном времени.

WP_Customize_Widgets::customize_controls_init();

Вызов метода customize_controls_init() позволяет загрузить все виджеты в пользовательский интерфейс настройки WordPress.

Этот метод должен быть вызван внутри хука customize_controls_init, чтобы гарантировать, что он будет выполнен в нужное время.

Пример использования:

// Загрузка виджетов в пользовательский интерфейс настройки
add_action( 'customize_controls_init', function() {
    WP_Customize_Widgets::customize_controls_init();
} );

В приведенном примере метод customize_controls_init() вызывается внутри анонимной функции, которая является обработчиком хука customize_controls_init. Это гарантирует, что метод будет выполнен в нужное время, когда пользовательский интерфейс настройки будет инициализирован.

customize_dynamic_partial_args()

Метод customize_dynamic_partial_args() является фильтром для аргументов динамических виджетных частей.

WP_Customize_Widgets::customize_dynamic_partial_args( array|false $partial_args, string $partial_id ): array

Метод customize_dynamic_partial_args() принимает два параметра: $partial_args (массив или ложное значение) и $partial_id (строка). Он возвращает массив с возможно измененными аргументами виджетной части.

$partial_args (array|false) — Обязательный. Аргументы виджетной части.

$partial_id (string) — Обязательный. Идентификатор виджетной части.

Метод customize_dynamic_partial_args() возвращает измененные аргументы виджетной части в виде массива.

<?php
/**
 * Фильтрует аргументы динамических виджетных частей.
 *
 * @param array|false $partial_args Аргументы виджетной части.
 * @param string $partial_id Идентификатор виджетной части.
 *
 * @return array Массив с измененными аргументами виджетной части.
 */
function my_customize_dynamic_partial_args( $partial_args, $partial_id ) {
    // Ваш код здесь
}
add_filter( 'customize_dynamic_partial_args', 'my_customize_dynamic_partial_args', 10, 2 );
?>

customize_preview_enqueue()

Метод customize_preview_enqueue() класса WP_Customize_Widgets используется для подключения скриптов в режиме предварительного просмотра настраиваемых виджетов в Customizer.

Этот метод отвечает за добавление скриптов, которые необходимы для работы виджетов в режиме предварительного просмотра. Он вызывается в контексте класса WP_Customize_Widgets, который является подклассом класса WP_Customize_Manager.

Метод customize_preview_enqueue() является публичным и статическим, поэтому он может быть вызван без создания экземпляра класса WP_Customize_Widgets.

WP_Customize_Widgets::customize_preview_enqueue();

Вызов этого кода позволяет подключить необходимые скрипты для работы виджетов в режиме предварительного просмотра.

Метод customize_preview_enqueue() не принимает никаких аргументов.

Обратите внимание, что этот метод должен быть вызван в контексте класса WP_Customize_Widgets или его подкласса.

customize_preview_init()

Метод customize_preview_init() добавляет хуки для предварительного просмотра в пользовательском интерфейсе Customizer.

Customizer представляет собой инструмент в WordPress, который позволяет вам настраивать и предварительно просматривать различные аспекты вашего сайта в режиме реального времени.

Этот метод добавляет хуки, которые позволяют разработчикам вносить изменения в предварительный просмотр Customizer и реагировать на эти изменения.

WP_Customize_Widgets::customize_preview_init();

Этот код вызывает метод customize_preview_init() класса WP_Customize_Widgets.

Метод customize_preview_init() добавляет хуки для предварительного просмотра в пользовательском интерфейсе Customizer.

Вызов этого метода обычно происходит в файле functions.php вашей темы или в плагине WordPress.

После вызова этого метода, вы можете добавить свои собственные функции и хуки, которые будут выполняться при изменении предварительного просмотра в Customizer.

customize_register()

Метод customize_register() является статическим методом класса WP_Customize_Widgets. Он используется для регистрации настроек и элементов управления Customizer для всех боковых панелей и виджетов.

Этот метод регистрирует настройки и элементы управления Customizer для виджетов и боковых панелей, позволяя разработчикам настраивать и персонализировать виджеты и их расположение на сайте.

WP_Customize_Widgets::customize_register();

Этот код вызывает статический метод customize_register() класса WP_Customize_Widgets. Он регистрирует настройки и элементы управления Customizer для виджетов и боковых панелей.

Метод customize_register() не принимает аргументов и не возвращает значений. Он выполняет регистрацию настроек и элементов управления Customizer для виджетов и боковых панелей, что позволяет разработчикам настраивать и персонализировать виджеты и их расположение на сайте.

end_dynamic_sidebar()

Метод end_dynamic_sidebar() используется для завершения отслеживания текущей боковой панели, которая рендерится.

WP_Customize_Widgets::end_dynamic_sidebar( int|string $index )

Метод end_dynamic_sidebar() принимает один обязательный параметр:

  • $index (int|string) — Индекс, имя или ID динамической боковой панели.

/**
 * Завершает отслеживание текущей боковой панели.
 *
 * @param int|string $index Индекс, имя или ID динамической боковой панели.
 */
WP_Customize_Widgets::end_dynamic_sidebar( $index );

В приведенном выше примере кода метод end_dynamic_sidebar() вызывается с параметром $index, который представляет собой индекс, имя или ID динамической боковой панели.

enqueue_scripts()

Метод enqueue_scripts() класса WP_Customize_Widgets используется для добавления скриптов и стилей в панель настройки темы (Customizer) и передачи данных в JavaScript.

Этот метод отвечает за загрузку необходимых ресурсов, таких как JavaScript-файлы и CSS-стили, в панель настройки темы. Он также отвечает за передачу данных из PHP в JavaScript, чтобы их можно было использовать во время настройки виджетов.

Метод enqueue_scripts() является частью класса WP_Customize_Widgets, который предоставляет возможность настраивать виджеты в панели настройки темы. Он позволяет добавлять и настраивать виджеты, а также изменять их внешний вид и поведение.

WP_Customize_Widgets::enqueue_scripts();

Вызов метода enqueue_scripts() класса WP_Customize_Widgets позволяет загрузить необходимые скрипты и стили в панель настройки темы.

Этот метод должен быть вызван в контексте панели настройки темы, чтобы обеспечить корректную загрузку ресурсов и передачу данных в JavaScript.

export_preview_data()

Метод export_preview_data() класса WP_Customize_Widgets используется для передачи информации о виджетах, которые появились на странице, в конец страницы и в конец блока wp_footer. Он позволяет связать виджеты, отображаемые в пользовательском интерфейсе Customizer, с виджетами, отображаемыми на фронтенде сайта.

Этот метод вызывается внутри хука wp_footer и передает данные о виджетах в JavaScript-объект _wpCustomizeWidgetsSettings. Этот объект содержит информацию о виджетах, их настройках и местоположении на странице.

WP_Customize_Widgets::export_preview_data();

filter_customize_dynamic_setting_args()

Метод filter_customize_dynamic_setting_args() определяет аргументы для динамически созданной настройки.

WP_Customize_Widgets::filter_customize_dynamic_setting_args( false|array $args, string $setting_id ): array|false

Метод filter_customize_dynamic_setting_args() принимает два параметра: $args (обязательный) и $setting_id (обязательный). Параметр $args представляет собой аргументы для конструктора класса WP_Customize_Setting. Параметр $setting_id представляет собой идентификатор динамической настройки, обычно получаемый из $_POST['customized'].

$args (false|array) — Аргументы для конструктора класса WP_Customize_Setting. Обязательный параметр.

$setting_id (string) — Идентификатор динамической настройки, обычно получаемый из $_POST['customized']. Обязательный параметр.

Метод filter_customize_dynamic_setting_args() возвращает аргументы настройки (array) или false в случае ошибки.

<code>$args = array(
    'type'        => 'option',
    'capability'  => 'edit_theme_options',
    'default'     => '',
    'transport'   => 'refresh',
    'sanitize_callback' => 'sanitize_text_field',
);
$setting_id = 'my_dynamic_setting';
$args = WP_Customize_Widgets::filter_customize_dynamic_setting_args( $args, $setting_id );
if ( $args ) {
    // Создание динамической настройки
    $setting = new WP_Customize_Setting( $setting_id, $args );
}

В данном примере кода создается массив $args с аргументами для настройки. Затем вызывается метод filter_customize_dynamic_setting_args() класса WP_Customize_Widgets с передачей массива $args и идентификатора настройки $setting_id. Если метод возвращает аргументы настройки, то создается новая настройка с помощью класса WP_Customize_Setting.

filter_customize_value_old_sidebars_widgets_data()

Метод filter_customize_value_old_sidebars_widgets_data() является фильтром для настройки старых данных виджетов в пользовательском интерфейсе Customizer.

Он позволяет изменять данные виджетов, которые были сохранены ранее, перед их отображением в пользовательском интерфейсе Customizer.

WP_Customize_Widgets::filter_customize_value_old_sidebars_widgets_data( array $old_sidebars_widgets ): array

Метод filter_customize_value_old_sidebars_widgets_data() принимает один обязательный параметр:

  • $old_sidebars_widgets (array) — Массив старых данных виджетов.

Метод возвращает отфильтрованный массив старых данных виджетов.

  • $old_sidebars_widgets (array) — Обязательный. Массив старых данных виджетов, который будет отфильтрован.

Метод не принимает других параметров.

Метод filter_customize_value_old_sidebars_widgets_data() возвращает отфильтрованный массив старых данных виджетов.

<code>// Фильтруем старые данные виджетов
<code>add_filter( 'old_sidebars_widgets_data', 'filter_customize_value_old_sidebars_widgets_data' );
<code>function filter_customize_value_old_sidebars_widgets_data( $old_sidebars_widgets ) {
    // Ваш код для фильтрации данных виджетов
    return $old_sidebars_widgets;
}</code>

В приведенном примере кода мы добавляем фильтр old_sidebars_widgets_data и указываем функцию filter_customize_value_old_sidebars_widgets_data() в качестве обработчика.

Внутри функции вы можете написать свой код для фильтрации данных виджетов и вернуть отфильтрованный массив.

filter_dynamic_sidebar_params()

Метод filter_dynamic_sidebar_params() является методом класса WP_Customize_Widgets. Он используется для внедрения атрибутов данных выборочного обновления в элементы контейнера виджетов.

WP_Customize_Widgets::filter_dynamic_sidebar_params( array $params ): array

Метод filter_dynamic_sidebar_params() принимает один обязательный параметр $params, который является массивом параметров динамической боковой панели. Он возвращает массив.

$params (array) — Обязательный. Параметры динамической боковой панели.

$args (array) — Параметры боковой панели.

$widget_args (array) — Параметры виджета.

Метод filter_dynamic_sidebar_params() возвращает массив параметров.

<code>$params</code> = array(
    'args' => array(
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="widget-title">',
        'after_title' => '</h2>',
    ),
    'widget_args' => array(
        'widget_id' => 'example-widget',
        'widget_name' => 'Example Widget',
    ),
);
<code>$filtered_params</code> = WP_Customize_Widgets::filter_dynamic_sidebar_params( <code>$params</code> );
// Результат:
<code>$filtered_params</code> = array(
    'args' => array(
        'before_widget' => '<div id="%1$s" class="widget %2$s" data-widget-id="example-widget" data-widget-name="Example Widget">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="widget-title">',
        'after_title' => '</h2>',
    ),
    'widget_args' => array(
        'widget_id' => 'example-widget',
        'widget_name' => 'Example Widget',
    ),
);

filter_option_sidebars_widgets_for_theme_switch()

Метод filter_option_sidebars_widgets_for_theme_switch() является частью класса WP_Customize_Widgets и используется для фильтрации опции sidebars_widgets при смене темы.

Этот метод позволяет изменить содержимое опции sidebars_widgets перед ее сохранением при смене темы. Он предоставляет возможность добавить или удалить виджеты из боковых панелей, а также изменить их порядок.

WP_Customize_Widgets::filter_option_sidebars_widgets_for_theme_switch( array $sidebars_widgets ): array

Метод filter_option_sidebars_widgets_for_theme_switch() принимает один обязательный параметр:

  • $sidebars_widgets (array) — Массив, содержащий виджеты боковых панелей.

Метод возвращает отфильтрованный массив $sidebars_widgets.

  • $sidebars_widgets (array) — Обязательный параметр. Массив, содержащий виджеты боковых панелей. Ключами массива являются идентификаторы боковых панелей, а значениями — массивы виджетов, привязанных к каждому боковому панелю.

Метод filter_option_sidebars_widgets_for_theme_switch() возвращает отфильтрованный массив $sidebars_widgets, содержащий виджеты боковых панелей.

<?php
/**
 * Пример использования метода filter_option_sidebars_widgets_for_theme_switch()
 *
 * @param array $sidebars_widgets Массив виджетов боковых панелей.
 *
 * @return array Отфильтрованный массив виджетов боковых панелей.
 */
function filter_option_sidebars_widgets_for_theme_switch_example( $sidebars_widgets ) {
    // Ваш код для фильтрации виджетов боковых панелей при смене темы
    return $sidebars_widgets;
}
?>

filter_sidebars_widgets_for_rendering_widget()

Метод filter_sidebars_widgets_for_rendering_widget() является частью класса WP_Customize_Widgets. Он используется для фильтрации виджетов в боковых панелях, чтобы убедиться, что только текущий виджет отображается в текущей боковой панели.

WP_Customize_Widgets::filter_sidebars_widgets_for_rendering_widget( array $sidebars_widgets ): array

Метод filter_sidebars_widgets_for_rendering_widget() принимает один обязательный параметр $sidebars_widgets, который является массивом виджетов в боковых панелях. Он фильтрует этот массив и возвращает отфильтрованный массив виджетов в боковых панелях.

$sidebars_widgets (обязательный): Массив виджетов в боковых панелях.

Метод filter_sidebars_widgets_for_rendering_widget() возвращает отфильтрованный массив виджетов в боковых панелях.

<?php
/**
 * Пример использования метода filter_sidebars_widgets_for_rendering_widget()
 */
// Массив виджетов в боковых панелях
$sidebars_widgets = array(
    'sidebar-1' => array(
        'widget-1',
        'widget-2',
        'widget-3'
    ),
    'sidebar-2' => array(
        'widget-4',
        'widget-5',
        'widget-6'
    )
);
// Фильтрация виджетов в боковых панелях
$filtered_widgets = WP_Customize_Widgets::filter_sidebars_widgets_for_rendering_widget( $sidebars_widgets );
// Вывод отфильтрованного массива виджетов в боковых панелях
print_r( $filtered_widgets );
?>

В приведенном выше примере кода мы создаем массив виджетов в боковых панелях и затем используем метод filter_sidebars_widgets_for_rendering_widget() для фильтрации этого массива. Отфильтрованный массив виджетов в боковых панелях выводится с помощью функции print_r().

filter_wp_kses_allowed_data_attributes()

Метод filter_wp_kses_allowed_data_attributes() класса WP_Customize_Widgets используется для обеспечения разрешенных атрибутов данных HTML для выборочного обновления (selective refresh) с помощью kses.

WP_Customize_Widgets::filter_wp_kses_allowed_data_attributes( array $allowed_html ): array

Метод filter_wp_kses_allowed_data_attributes() принимает один параметр — массив разрешенного HTML. Он возвращает измененный массив разрешенного HTML.

$allowed_html (array) — Обязательный. Разрешенный HTML.

Метод filter_wp_kses_allowed_data_attributes() возвращает измененный массив разрешенного HTML.

<?php
/**
 * Пример использования метода filter_wp_kses_allowed_data_attributes()
 *
 * @param array $allowed_html Разрешенный HTML.
 * @return array Измененный массив разрешенного HTML.
 */
$allowed_html = WP_Customize_Widgets::filter_wp_kses_allowed_data_attributes( $allowed_html );
?>

get_available_widgets()

Метод get_available_widgets() класса WP_Customize_Widgets используется для создания индекса всех доступных виджетов, которые могут быть использованы в моделях Backbone.

Метод собирает информацию о всех доступных виджетах и создает массив, содержащий список этих виджетов.

WP_Customize_Widgets::get_available_widgets(): array

Метод get_available_widgets() вызывается статически, без создания экземпляра класса WP_Customize_Widgets. Он возвращает массив, содержащий список всех доступных виджетов.

Пример использования:

$available_widgets = WP_Customize_Widgets::get_available_widgets();

В этом примере переменная $available_widgets будет содержать список всех доступных виджетов.

Метод get_available_widgets() возвращает массив, содержащий список всех доступных виджетов.

Пример:

array List of available widgets

get_captured_option()

Метод get_captured_option() класса WP_Customize_Widgets используется для получения значения опции, которая была захвачена от сохранения.

WP_Customize_Widgets::get_captured_option( string $option_name, mixed $default_value = false ): mixed

Метод get_captured_option() принимает два параметра:

  • $option_name (обязательный) — название опции.
  • $default_value (необязательный) — значение по умолчанию, которое будет возвращено, если опция не существует. По умолчанию: false.

$option_name (string) — Обязательный. Название опции.

$default_value (mixed) — Необязательный. Значение по умолчанию, которое будет возвращено, если опция не существует. По умолчанию: false.

Метод get_captured_option() возвращает значение, установленное для опции.

<?php
/**
 * Пример использования метода get_captured_option()
 *
 * @param string $option_name     Название опции.
 * @param mixed  $default_value   Значение по умолчанию, если опция не существует. По умолчанию: false.
 *
 * @return mixed                  Значение опции.
 */
$option_value = WP_Customize_Widgets::get_captured_option( 'my_option', 'default_value' );
?>

get_captured_options()

Метод get_captured_options() класса WP_Customize_Widgets используется для получения захваченных обновлений опций виджетов. Он извлекает массив захваченных опций виджетов, которые были изменены в пользовательском интерфейсе настраиваемых виджетов.

WP_Customize_Widgets::get_captured_options(): array

Метод get_captured_options() вызывается статически, без создания экземпляра класса WP_Customize_Widgets. Он возвращает массив захваченных опций виджетов.

Метод get_captured_options() возвращает массив захваченных опций виджетов. Каждый элемент массива представляет собой захваченное обновление опции виджета.

get_instance_hash_key()

Метод get_instance_hash_key() класса WP_Customize_Widgets используется для получения MAC-адреса (Message Authentication Code) для сериализованной строки экземпляра виджета. MAC-адрес представляет собой хэш-значение, которое используется для проверки целостности данных и обеспечения их безопасности.

WP_Customize_Widgets::get_instance_hash_key( string $serialized_instance ): string

Метод get_instance_hash_key() принимает один обязательный параметр:

  • $serialized_instance (string) — Сериализованная строка экземпляра виджета.

Метод возвращает строку — MAC-адрес для сериализованной строки экземпляра виджета.

<code>$serialized_instance = '...';</code>
<code>$hash_key = WP_Customize_Widgets::get_instance_hash_key( $serialized_instance );

В приведенном выше примере кода мы создаем переменную $serialized_instance и присваиваем ей сериализованную строку экземпляра виджета. Затем мы вызываем метод get_instance_hash_key() класса WP_Customize_Widgets и передаем ему эту сериализованную строку в качестве аргумента. Результатом выполнения метода будет строка, содержащая MAC-адрес для данного экземпляра виджета.

get_post_value()

Метод get_post_value() класса WP_Customize_Widgets используется для получения значения поста без экранирования или возврата значения по умолчанию.

WP_Customize_Widgets::get_post_value( string $name, mixed $default_value = null ): mixed

Метод get_post_value() принимает два параметра: $name (обязательный) и $default_value (необязательный). Он возвращает значение поста без экранирования или значение по умолчанию, если пост не существует.

$name (строка, обязательный): Значение поста.

$default_value (любой тип, необязательный): Значение по умолчанию. По умолчанию равно null.

Метод get_post_value() возвращает значение поста без экранирования или значение по умолчанию.

<?php
/**
 * Пример использования метода get_post_value()
 *
 * @param string $name Значение поста.
 * @param mixed $default_value Значение по умолчанию. По умолчанию равно null.
 * @return mixed Значение поста без экранирования или значение по умолчанию.
 */
$value = WP_Customize_Widgets::get_post_value( $name, $default_value );
?>

get_selective_refreshable_widgets()

Метод get_selective_refreshable_widgets() класса WP_Customize_Widgets используется для получения списка виджетов, поддерживающих выборочное обновление (selective refresh). Он возвращает массив, в котором каждому зарегистрированному виджету соответствует значение, указывающее, поддерживает ли тема выборочное обновление.

WP_Customize_Widgets::get_selective_refreshable_widgets(): array

Метод get_selective_refreshable_widgets() не принимает аргументов. Он возвращает массив, в котором каждому зарегистрированному виджету соответствует значение, указывающее, поддерживает ли тема выборочное обновление.

Пример использования:

// Получение списка виджетов, поддерживающих выборочное обновление
$widgets = WP_Customize_Widgets::get_selective_refreshable_widgets();

Метод get_selective_refreshable_widgets() возвращает массив, в котором каждому зарегистрированному виджету соответствует значение, указывающее, поддерживает ли тема выборочное обновление. Если тема не поддерживает выборочное обновление, возвращается пустой массив.

get_setting_args()

Метод get_setting_args() класса WP_Customize_Widgets используется для извлечения общих аргументов, которые необходимо предоставить при создании настройки Customizer.

Этот метод возвращает массив с возможно измененными аргументами настройки.

WP_Customize_Widgets::get_setting_args( string $id, array $overrides = array() ): array

Метод get_setting_args() принимает два параметра:

  • $id (обязательный) — ID настройки виджета.
  • $overrides (необязательный) — Массив переопределений настройки. По умолчанию: array().

$id (string) — Обязательный. ID настройки виджета.

$overrides (array) — Необязательный. Массив переопределений настройки. По умолчанию: array().

Метод get_setting_args() возвращает массив, возможно измененных аргументов настройки.

<?php
/**
 * Пример использования метода get_setting_args()
 */
// ID настройки виджета
$id = 'widget_setting_id';
// Массив переопределений настройки
$overrides = array(
  'type' => 'text',
  'default' => 'Hello World',
);
// Получение аргументов настройки
$args = WP_Customize_Widgets::get_setting_args( $id, $overrides );
// Вывод аргументов настройки
var_dump( $args );
?>

В приведенном выше примере кода мы сначала определяем ID настройки виджета и массив переопределений настройки. Затем мы вызываем метод get_setting_args() с этими параметрами и сохраняем возвращенные аргументы в переменную $args. Наконец, мы выводим содержимое переменной $args с помощью функции var_dump().

get_setting_id()

Метод get_setting_id() класса WP_Customize_Widgets преобразует идентификатор виджета в соответствующий идентификатор настройки Customizer (имя опции). Он используется для получения идентификатора настройки виджета, который может быть использован для сохранения и извлечения данных виджета в Customizer.

WP_Customize_Widgets::get_setting_id( string $widget_id ): string

Метод get_setting_id() принимает один обязательный параметр:

  • $widget_id (строка) — Обязательный. Идентификатор виджета.

Метод возвращает строку, представляющую идентификатор настройки виджета.

<?php
// Пример использования метода get_setting_id()
$widget_id = 'my_widget';
$setting_id = WP_Customize_Widgets::get_setting_id( $widget_id );
?>

В приведенном выше примере кода, метод get_setting_id() используется для преобразования идентификатора виджета $widget_id в идентификатор настройки виджета $setting_id.

  • $widget_id (строка) — Обязательный. Идентификатор виджета.

Метод get_setting_id() принимает один обязательный параметр $widget_id, который представляет собой идентификатор виджета, для которого нужно получить идентификатор настройки виджета.

Метод get_setting_id() возвращает строку, представляющую идентификатор настройки виджета. Этот идентификатор может быть использован для сохранения и извлечения данных виджета в Customizer.

get_setting_type()

Метод get_setting_type() класса WP_Customize_Widgets используется для получения типа настройки виджета по заданному идентификатору настройки.

WP_Customize_Widgets::get_setting_type( string $setting_id ): string|void

Метод get_setting_type() принимает один обязательный параметр:

  • $setting_id (string) — Идентификатор настройки. Обязательный параметр.

Метод возвращает строку, представляющую тип настройки виджета, или ничего (void), если тип не найден.


/**
 * Пример использования метода get_setting_type()
 *
 * Получает тип настройки виджета по заданному идентификатору настройки.
 *
 * @param string $setting_id Идентификатор настройки. Обязательный параметр.
 *
 * @return string|void Строка, представляющая тип настройки виджета, или ничего (void), если тип не найден.
 */
$setting_type = WP_Customize_Widgets::get_setting_type( $setting_id );

get_widget_control()

Метод get_widget_control() класса WP_Customize_Widgets используется для получения разметки элемента управления виджетом.

Метод возвращает HTML-разметку формы элемента управления виджетом.

WP_Customize_Widgets::get_widget_control( array $args ): string

Метод get_widget_control() принимает один обязательный параметр:

  • $args (array) — Массив аргументов элемента управления виджетом.

$args (array) — Обязательный. Массив аргументов элемента управления виджетом.

Метод get_widget_control() возвращает HTML-разметку формы элемента управления виджетом в виде строки.

<?php
/**
 * Пример использования метода get_widget_control()
 */
// Параметры элемента управления виджетом
$args = array(
  'id' => 'widget_id',
  'name' => 'widget_name',
  'description' => 'Widget Description',
  // Дополнительные параметры
);
// Получение разметки элемента управления виджетом
$widget_control = WP_Customize_Widgets::get_widget_control( $args );
// Вывод разметки элемента управления виджетом
echo $widget_control;
?>

В приведенном выше примере кода метод get_widget_control() используется для получения разметки элемента управления виджетом на основе переданных аргументов. Разметка элемента управления виджетом сохраняется в переменной $widget_control и затем выводится с помощью функции echo.

get_widget_control_parts()

Метод get_widget_control_parts() класса WP_Customize_Widgets используется для получения разметки элементов управления виджетом.

WP_Customize_Widgets::get_widget_control_parts( array $args ): array

Метод get_widget_control_parts() принимает один обязательный параметр $args, который является массивом аргументов элементов управления виджетом.

$args (обязательный): Массив аргументов элементов управления виджетом.

Метод get_widget_control_parts() возвращает массив с разметкой элементов управления виджетом.

<code><?php
/**
 * Пример использования метода get_widget_control_parts()
 */
$args = array(
    'id_base' => 'my_widget',
    'widget_id' => 'my_widget-1',
    'width' => 250,
    'height' => 300,
    'number' => 1,
    'form' => true,
    'widget_name' => 'My Widget',
    'fields' => array(
        'title' => array(
            'type' => 'text',
            'label' => 'Title',
            'value' => 'My Widget Title'
        ),
        'content' => array(
            'type' => 'textarea',
            'label' => 'Content',
            'value' => 'Lorem ipsum dolor sit amet.'
        )
    )
);
$widget_control_parts = WP_Customize_Widgets::get_widget_control_parts( $args );
// Вывод разметки элементов управления виджетом
foreach ( $widget_control_parts as $part ) {
    echo $part;
}
?>

is_option_capture_ignored()

Метод is_option_capture_ignored() класса WP_Customize_Widgets используется для определения, должно ли игнорироваться захваченное обновление опции.

WP_Customize_Widgets::is_option_capture_ignored( string $option_name ): bool

Метод is_option_capture_ignored() принимает один обязательный параметр:

  • $option_name (string) — Название опции.

$option_name (string) — Обязательный параметр. Название опции.

Метод is_option_capture_ignored() возвращает значение типа bool, указывающее, игнорируется ли захват опции.

<code>// Проверяем, игнорируется ли захват опции 'example_option'
$is_ignored = WP_Customize_Widgets::is_option_capture_ignored( 'example_option' );</code>

В приведенном выше примере кода мы проверяем, игнорируется ли захват опции с названием ‘example_option’.

is_panel_active()

Метод is_panel_active() класса WP_Customize_Widgets используется для определения активности панели виджетов на основе наличия зарегистрированных боковых панелей. Он возвращает логическое значение, указывающее, активна ли панель виджетов.

WP_Customize_Widgets::is_panel_active(): bool

Метод is_panel_active() не принимает никаких аргументов. Он вызывается статически, используя имя класса WP_Customize_Widgets. Метод возвращает логическое значение true или false, указывающее, активна ли панель виджетов.

Метод is_panel_active() возвращает логическое значение true, если панель виджетов активна, и false, если панель неактивна.

is_sidebar_rendered()

Метод is_sidebar_rendered() класса WP_Customize_Widgets используется для определения, отображается ли боковая панель на странице.

WP_Customize_Widgets::is_sidebar_rendered( string $sidebar_id ): bool

Метод is_sidebar_rendered() принимает один обязательный параметр:

  • $sidebar_id (строка) — Идентификатор боковой панели, которую нужно проверить.

$sidebar_id (строка) — Обязательный. Идентификатор боковой панели, которую нужно проверить.

Метод is_sidebar_rendered() возвращает логическое значение (bool) — отображается ли боковая панель.

<code>$sidebar_id = 'sidebar-1';</code>
<code>$is_rendered = WP_Customize_Widgets::is_sidebar_rendered( $sidebar_id );

В приведенном выше примере кода переменной $sidebar_id присваивается значение ‘sidebar-1’. Затем метод is_sidebar_rendered() вызывается с этим идентификатором боковой панели в качестве аргумента, и возвращаемое значение присваивается переменной $is_rendered. В результате переменная $is_rendered будет содержать логическое значение, указывающее, отображается ли боковая панель с идентификатором ‘sidebar-1’.

is_wide_widget()

Метод is_wide_widget() класса WP_Customize_Widgets используется для определения, является ли виджет «широким».

Виджет считается «широким», если его ширина превышает заданное значение.

WP_Customize_Widgets::is_wide_widget( string $widget_id ): bool

Метод is_wide_widget() принимает один обязательный параметр:

  1. $widget_id (строка) — Идентификатор виджета.

$widget_id (строка) — Обязательный. Идентификатор виджета.

Метод is_wide_widget() возвращает логическое значение true, если виджет является «широким», и false в противном случае.

<code>$widget_id = 'my_widget';</code>
<code>$is_wide = WP_Customize_Widgets::is_wide_widget( $widget_id );</code>
<code>if ( $is_wide ) {</code>
<code>    // Код, выполняемый, если виджет является "широким"</code>
<code>} else {</code>
<code>    // Код, выполняемый, если виджет не является "широким"</code>
<code>}</code>

is_widget_rendered()

Метод is_widget_rendered() класса WP_Customize_Widgets используется для определения, был ли виджет отрисован на странице.

WP_Customize_Widgets::is_widget_rendered( string $widget_id ): bool

Метод is_widget_rendered() принимает один обязательный параметр:

  • $widget_id (строка) — Идентификатор виджета, который нужно проверить.

$widget_id (строка) — Обязательный. Идентификатор виджета, который нужно проверить.

Метод is_widget_rendered() возвращает логическое значение true, если виджет отрисован на странице, и false в противном случае.

<?php
/**
 * Проверяет, был ли виджет с идентификатором 'my_widget' отрисован на странице.
 */
$is_rendered = WP_Customize_Widgets::is_widget_rendered( 'my_widget' );
if ( $is_rendered ) {
    // Виджет отрисован на странице
    // Добавьте здесь свой код
} else {
    // Виджет не отрисован на странице
    // Добавьте здесь свой код
}
?>

is_widget_selective_refreshable()

Метод is_widget_selective_refreshable() класса WP_Customize_Widgets используется для определения, поддерживает ли виджет выборочное обновление.

Выборочное обновление (selective refresh) — это технология в WordPress, которая позволяет обновлять только определенные части страницы без перезагрузки всей страницы. Это особенно полезно для виджетов, так как позволяет обновлять только содержимое виджета без необходимости перезагружать всю страницу.

WP_Customize_Widgets::is_widget_selective_refreshable( string $id_base ): bool

Метод is_widget_selective_refreshable() принимает один обязательный параметр:

  • $id_base (строка) — Базовый идентификатор виджета.

Метод возвращает логическое значение (bool), указывающее, может ли виджет быть обновлен выборочно.

$id_base (строка) — Обязательный. Базовый идентификатор виджета.

Метод is_widget_selective_refreshable() возвращает логическое значение (bool), указывающее, может ли виджет быть обновлен выборочно.

<?php
/**
 * Проверяет, поддерживает ли виджет выборочное обновление.
 *
 * @param string $id_base Базовый идентификатор виджета.
 * @return bool Возвращает true, если виджет поддерживает выборочное обновление, иначе false.
 */
$is_selective_refreshable = WP_Customize_Widgets::is_widget_selective_refreshable( $id_base );
?>

output_widget_control_templates()

Метод output_widget_control_templates() класса WP_Customize_Widgets используется для рендеринга шаблонов элементов управления виджетами в DOM.

Этот метод выводит на страницу HTML-код, содержащий шаблоны для создания и настройки виджетов. Шаблоны могут быть использованы для отображения формы настройки виджета, его заголовка, описания и других элементов управления.

WP_Customize_Widgets::output_widget_control_templates();

Вызов данного метода позволяет вывести на страницу HTML-код с шаблонами элементов управления виджетами.

Примечание: данный метод не принимает аргументов.

override_sidebars_widgets_for_theme_switch()

Метод override_sidebars_widgets_for_theme_switch() класса WP_Customize_Widgets используется для переопределения виджетов боковой панели при смене темы в WordPress.

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

Метод принимает два аргумента:

  • $theme (обязательный) — объект темы, для которой происходит смена;
  • $old_widgets (обязательный) — массив данных о виджетах, сохраненных в базе данных для предыдущей темы.

Метод возвращает массив данных о виджетах, которые будут использоваться в новой теме.

WP_Customize_Widgets::override_sidebars_widgets_for_theme_switch( $theme, $old_widgets );

Этот код используется для вызова метода override_sidebars_widgets_for_theme_switch() класса WP_Customize_Widgets с передачей двух аргументов: объекта темы $theme и массива данных о виджетах $old_widgets.

Метод переопределит виджеты боковой панели для новой темы, используя переданные аргументы, и вернет массив данных о виджетах, которые будут использоваться в новой теме.

parse_widget_id()

Метод parse_widget_id() класса WP_Customize_Widgets используется для преобразования идентификатора виджета в его составляющие — базу и номер.

WP_Customize_Widgets::parse_widget_id( string $widget_id ): array

Метод parse_widget_id() принимает один обязательный параметр:

  • $widget_id (string) — Идентификатор виджета.

$widget_id (string) — Обязательный. Идентификатор виджета.

Метод parse_widget_id() возвращает массив, содержащий базу и номер компонентов виджета.

<?php
/**
 * Пример использования метода parse_widget_id()
 */
$widget_id = 'example_widget-1';
// Преобразование идентификатора виджета
$widget_components = WP_Customize_Widgets::parse_widget_id( $widget_id );
// Вывод базы и номера компонентов виджета
echo 'База виджета: ' . $widget_components['base'] . '<br>';
echo 'Номер виджета: ' . $widget_components['number'];
?>

В данном примере мы имеем идентификатор виджета example_widget-1. Метод parse_widget_id() преобразует этот идентификатор в массив, содержащий базу и номер компонентов виджета. Затем мы выводим базу и номер компонентов на экран.

parse_widget_setting_id()

Метод parse_widget_setting_id() класса WP_Customize_Widgets преобразует идентификатор настройки виджета (путь к опции) в его компоненты id_base и number.

WP_Customize_Widgets::parse_widget_setting_id( string $setting_id ): array|WP_Error

Метод parse_widget_setting_id() принимает один обязательный параметр:

  • $setting_id (строка) — Обязательный. Идентификатор настройки виджета.

$setting_id (строка) — Обязательный. Идентификатор настройки виджета.

Метод parse_widget_setting_id() возвращает массив, содержащий компоненты id_base и number виджета, или объект WP_Error в случае ошибки.

<code>$setting_id = 'widget_text-2';</code>
<code>$parsed = WP_Customize_Widgets::parse_widget_setting_id( $setting_id );</code>
<code>if ( ! is_wp_error( $parsed ) ) {</code>
<code>  $id_base = $parsed['id_base'];</code>
<code>  $number = $parsed['number'];</code>
<code>  echo "id_base: $id_base, number: $number";</code>
<code>}</code>

В этом примере мы передаем идентификатор настройки виджета 'widget_text-2' в метод parse_widget_setting_id(). Затем мы проверяем, что результат не является объектом WP_Error. Если это так, мы получаем компоненты id_base и number из результата и выводим их на экран.

prepreview_added_sidebars_widgets()

Метод prepreview_added_sidebars_widgets() класса WP_Customize_Widgets является устаревшим и был заменен фильтром customize_dynamic_setting_args. Он предназначен для обработки виджетов, добавленных в боковые панели, перед их отображением в пользовательском интерфейсе.

Данный метод не имеет подробного описания и документации.

WP_Customize_Widgets::prepreview_added_sidebars_widgets();

Вызов метода prepreview_added_sidebars_widgets() позволяет обработать виджеты, добавленные в боковые панели, перед их отображением в пользовательском интерфейсе. Данный метод является устаревшим и рекомендуется использовать фильтр customize_dynamic_setting_args для этой цели.

prepreview_added_widget_instance()

Метод prepreview_added_widget_instance() является устаревшим и был заменен фильтром customize_dynamic_setting_args. Он отсутствует в документации WordPress и не имеет подробного описания.

WP_Customize_Widgets::prepreview_added_widget_instance();

Метод prepreview_added_widget_instance() используется для предварительного просмотра экземпляра виджета, добавленного в пользовательский интерфейс настройки темы WordPress. Он вызывается в процессе создания виджета и позволяет изменять аргументы динамических настроек.

preview_sidebars_widgets()

Метод preview_sidebars_widgets() класса WP_Customize_Widgets используется для обеспечения правильного предварительного просмотра виджетов при настройке.

WP_Customize_Widgets::preview_sidebars_widgets( array $sidebars_widgets ): array

Метод preview_sidebars_widgets() принимает один обязательный параметр:

  • $sidebars_widgets (array) — Список виджетов для текущей боковой панели.

$sidebars_widgets (array) — Обязательный. Список виджетов для текущей боковой панели.

Метод preview_sidebars_widgets() возвращает массив.

<?php
/**
 * Пример использования метода preview_sidebars_widgets()
 */
// Создаем экземпляр класса WP_Customize_Widgets
$customize_widgets = new WP_Customize_Widgets();
// Определяем список виджетов для текущей боковой панели
$sidebars_widgets = array(
    'sidebar-1' => array(
        'widget_text-1',
        'widget_search-1',
        'widget_categories-1'
    ),
    'sidebar-2' => array(
        'widget_text-2',
        'widget_search-2',
        'widget_categories-2'
    )
);
// Получаем предварительный просмотр виджетов
$preview_widgets = $customize_widgets->preview_sidebars_widgets( $sidebars_widgets );
// Выводим результат
var_dump( $preview_widgets );
?>

Метод print_footer_scripts() является методом класса WP_Customize_Widgets. Он вызывает хуки admin_print_footer_scripts и admin_print_scripts для разрешения использования пользовательских скриптов из плагинов.

Метод работает следующим образом: после вызова хуков admin_print_footer_scripts и admin_print_scripts, он позволяет плагинам добавлять свои собственные скрипты в подвал административной панели WordPress.

Этот метод используется для добавления пользовательских скриптов в административную панель WordPress. Он позволяет разработчикам плагинов добавлять дополнительную функциональность и настраивать виджеты в административной панели.

WP_Customize_Widgets::print_footer_scripts();

Выше приведен код, который вызывает метод print_footer_scripts() класса WP_Customize_Widgets. Этот метод позволяет добавлять пользовательские скрипты в подвал административной панели WordPress.

Рекомендуется вызывать этот метод внутри хука admin_print_footer_scripts или admin_print_scripts, чтобы убедиться, что скрипты будут добавлены в подвал административной панели.

Метод print_preview_css() класса WP_Customize_Widgets используется для вставки стилей по умолчанию для выделенного виджета на раннем этапе, чтобы тема могла переопределить их с помощью таблицы стилей.

WP_Customize_Widgets::print_preview_css();

Этот код вставляет стили по умолчанию для выделенного виджета на раннем этапе.

Метод print_scripts() класса WP_Customize_Widgets вызывает хуки admin_print_scripts-widgets.php и admin_print_scripts, чтобы позволить подключение пользовательских скриптов из плагинов. Он используется для добавления дополнительных скриптов, которые могут быть необходимы для работы виджетов в пользовательской области администрирования WordPress.

Метод print_scripts() вызывает хуки admin_print_scripts-widgets.php и admin_print_scripts. Это позволяет подключать пользовательские скрипты из плагинов, которые могут быть необходимы для работы виджетов в пользовательской области администрирования WordPress.

WP_Customize_Widgets::print_scripts();

Вызов метода print_scripts() класса WP_Customize_Widgets позволяет подключить пользовательские скрипты, необходимые для работы виджетов в пользовательской области администрирования WordPress.

Метод print_styles() класса WP_Customize_Widgets вызывает хуки admin_print_styles-widgets.php и admin_print_styles для подключения пользовательских стилей из плагинов. Он позволяет добавлять дополнительные стили к виджетам в административной панели WordPress.

WP_Customize_Widgets::print_styles();

Вызов метода print_styles() осуществляется статически, без создания экземпляра класса WP_Customize_Widgets. Он не принимает никаких аргументов.

Метод print_styles() используется для подключения пользовательских стилей к виджетам в административной панели WordPress. Он вызывает хуки admin_print_styles-widgets.php и admin_print_styles, что позволяет плагинам добавлять свои собственные стили к виджетам.

refresh_nonces()

Метод refresh_nonces() класса WP_Customize_Widgets обновляет nonce для обновления виджетов.

WP_Customize_Widgets::refresh_nonces( array $nonces ): array

Метод refresh_nonces() принимает один обязательный параметр $nonces, который является массивом нонсов.

$nonces (array) (обязательный): Массив нонсов.

Метод refresh_nonces() возвращает массив нонсов.

<code>// Обновление нонсов для виджетов
$nonces = array(
    'nonce1' => wp_create_nonce( 'nonce1' ),
    'nonce2' => wp_create_nonce( 'nonce2' ),
);
$refreshed_nonces = WP_Customize_Widgets::refresh_nonces( $nonces );</code>

В приведенном примере кода мы создаем массив нонсов $nonces с двумя элементами. Затем мы вызываем метод refresh_nonces() класса WP_Customize_Widgets и передаем в него массив нонсов. Метод обновляет нонсы и возвращает массив обновленных нонсов $refreshed_nonces.

register_settings()

Метод register_settings() является частью класса WP_Customize_Widgets и используется для проверки входящих настроек виджетов и их динамической регистрации. Это позволяет правильно инициализировать виджеты.

WP_Customize_Widgets::register_settings();

Этот код используется для регистрации настроек виджетов. Он должен быть вызван в контексте хука customize_register для регистрации настроек виджетов.

Метод register_settings() выполняет следующие действия:

  • Проверяет входящие настройки виджетов.
  • Динамически добавляет настройки виджетов, чтобы виджеты были правильно инициализированы.

Этот метод обычно вызывается внутри функции обратного вызова хука customize_register. Он гарантирует, что все настройки виджетов будут зарегистрированы и доступны для использования в пользовательском интерфейсе настройки темы.

remove_prepreview_filters()

Метод remove_prepreview_filters() класса WP_Customize_Widgets является устаревшим и был заменен фильтром customize_dynamic_setting_args. Он не имеет подробного описания и документации.

WP_Customize_Widgets::remove_prepreview_filters();

Этот код вызывает метод remove_prepreview_filters() класса WP_Customize_Widgets. Так как метод устарел, рекомендуется использовать фильтр customize_dynamic_setting_args вместо него.

render_widget_partial()

Метод render_widget_partial() класса WP_Customize_Widgets используется для отображения определенного виджета с использованием предоставленных аргументов боковой панели.

Данный метод рендерит виджет, используя переданные аргументы боковой панели. Он принимает объект WP_Customize_Partial в качестве обязательного параметра, который представляет собой частичное представление виджета, и массив $context в качестве обязательного параметра, который представляет собой аргументы боковой панели.

WP_Customize_Widgets::render_widget_partial( WP_Customize_Partial $partial, array $context ): string|false

Метод render_widget_partial() принимает два параметра: $partial (обязательный) и $context (обязательный). Он возвращает строку или логическое значение false.

$partial (обязательный): Объект WP_Customize_Partial. Представляет собой частичное представление виджета.

$context (обязательный): Массив. Представляет собой аргументы боковой панели, предоставляемые в качестве контекста контейнера. Включает в себя следующие параметры:

  • sidebar_id: ID боковой панели, в которую будет рендериться виджет.
  • sidebar_instance_number: Число, определяющее порядковый номер экземпляра виджета.

Метод render_widget_partial() возвращает строку или логическое значение false.

<?php
/**
 * Пример использования метода render_widget_partial()
 *
 * @param WP_Customize_Partial $partial Объект частичного представления виджета.
 * @param array $context Аргументы боковой панели.
 *   - sidebar_id (string) ID боковой панели, в которую будет рендериться виджет.
 *   - sidebar_instance_number (int) Порядковый номер экземпляра виджета.
 *
 * @return string|false Возвращает строку или логическое значение false.
 */
$partial = new WP_Customize_Partial();
$context = array(
  'sidebar_id' => 'sidebar-1',
  'sidebar_instance_number' => 1
);
$result = WP_Customize_Widgets::render_widget_partial( $partial, $context );
?>

sanitize_sidebar_widgets()

Метод sanitize_sidebar_widgets() класса WP_Customize_Widgets используется для обеспечения того, чтобы массивы виджетов боковой панели содержали только идентификаторы виджетов. Он проверяет каждый элемент массива виджетов и удаляет любые недопустимые значения, оставляя только идентификаторы виджетов.

WP_Customize_Widgets::sanitize_sidebar_widgets( string[] $widget_ids ): string[]

Метод sanitize_sidebar_widgets() принимает один обязательный параметр:

  • $widget_ids (тип: массив строк, обязательный) — Массив идентификаторов виджетов.

Метод возвращает отфильтрованный массив идентификаторов виджетов.


/**
 * Пример использования метода sanitize_sidebar_widgets()
 */
// Массив виджетов боковой панели
$sidebar_widgets = array(
  'widget1',
  'widget2',
  'widget3',
  'invalid_widget',
);
// Отфильтрованный массив виджетов боковой панели
$sanitized_widgets = WP_Customize_Widgets::sanitize_sidebar_widgets( $sidebar_widgets );
// Вывод отфильтрованного массива виджетов боковой панели
print_r( $sanitized_widgets );

В данном примере метод sanitize_sidebar_widgets() принимает массив виджетов боковой панели, содержащий идентификаторы виджетов, включая недопустимое значение «invalid_widget». Метод фильтрует массив и возвращает только допустимые идентификаторы виджетов. Результатом будет отфильтрованный массив виджетов боковой панели без недопустимого значения «invalid_widget».

  • $widget_ids (тип: массив строк, обязательный) — Массив идентификаторов виджетов, которые нужно отфильтровать.

Метод sanitize_sidebar_widgets() возвращает массив отфильтрованных идентификаторов виджетов боковой панели.

sanitize_sidebar_widgets_js_instance()

Метод sanitize_sidebar_widgets_js_instance() класса WP_Customize_Widgets используется для удаления идентификаторов виджетов, которые больше не зарегистрированы. Он принимает список идентификаторов виджетов и возвращает отфильтрованный список, в котором удалены идентификаторы виджетов, не зарегистрированных в системе.

WP_Customize_Widgets::sanitize_sidebar_widgets_js_instance( array $widget_ids ): array

Метод sanitize_sidebar_widgets_js_instance() принимает один обязательный параметр:

  • $widget_ids (array) — Список идентификаторов виджетов, которые нужно отфильтровать.

$widget_ids (array) — Обязательный. Список идентификаторов виджетов. Каждый идентификатор должен быть строкой.

Метод sanitize_sidebar_widgets_js_instance() возвращает отфильтрованный список идентификаторов виджетов.

<code>// Пример использования метода sanitize_sidebar_widgets_js_instance()
$widget_ids = array(
    'widget_id_1',
    'widget_id_2',
    'widget_id_3'
);
$filtered_widget_ids = WP_Customize_Widgets::sanitize_sidebar_widgets_js_instance( $widget_ids );
</code>

sanitize_widget_instance()

Метод sanitize_widget_instance() класса WP_Customize_Widgets используется для санитизации экземпляра виджета.

Он принимает экземпляр виджета в качестве обязательного параметра и базу ID виджета в качестве необязательного параметра. Метод возвращает санитизированный экземпляр виджета или ничего (void).

Этот метод используется для очистки и проверки данных, введенных пользователем, перед сохранением экземпляра виджета. Он обеспечивает безопасность и целостность данных, а также предотвращает возможные атаки.

WP_Customize_Widgets::sanitize_widget_instance( array $value, string $id_base = null ): array|void

Метод sanitize_widget_instance() принимает два параметра: $value (обязательный) — экземпляр виджета для санитизации, и $id_base (необязательный) — база ID виджета. Метод возвращает санитизированный экземпляр виджета или ничего (void).

  • $value (array) — Обязательный. Экземпляр виджета для санитизации.
  • $id_base (string) — Необязательный. База ID виджета. По умолчанию: null.

Метод принимает экземпляр виджета в виде массива и базу ID виджета в виде строки.

Метод sanitize_widget_instance() возвращает санитизированный экземпляр виджета в виде массива или ничего (void).

<?php
/**
 * Пример использования метода sanitize_widget_instance()
 *
 * @param array  $value   Экземпляр виджета для санитизации.
 * @param string $id_base База ID виджета. По умолчанию: null.
 *
 * @return array|void Санитизированный экземпляр виджета.
 */
$value = array(
    'title' => 'Example Widget',
    'text'  => '<script>alert("Hello World!");</script>',
);
$id_base = 'example_widget';
$sanitized_value = WP_Customize_Widgets::sanitize_widget_instance( $value, $id_base );
// $sanitized_value содержит санитизированный экземпляр виджета
?>

В приведенном выше примере кода мы передаем экземпляр виджета в виде массива и базу ID виджета в метод sanitize_widget_instance(). Метод санитизирует экземпляр виджета и возвращает санитизированный экземпляр виджета.

sanitize_widget_js_instance()

Метод sanitize_widget_js_instance() класса WP_Customize_Widgets преобразует экземпляр виджета в формат JSON.

Данный метод используется для преобразования экземпляра виджета в формат JSON, чтобы его можно было сохранить и передать в JavaScript.

WP_Customize_Widgets::sanitize_widget_js_instance( array $value, string $id_base = null ): array

Метод sanitize_widget_js_instance() принимает два параметра:

  • $value (обязательный) — Экземпляр виджета, который нужно преобразовать в JSON.
  • $id_base (необязательный) — База ID виджета, который санитизируется. По умолчанию: null.

Метод возвращает преобразованный в JSON формат экземпляр виджета в виде массива.

  • $value — Обязательный. Экземпляр виджета, который нужно преобразовать в JSON.
  • $id_base — Необязательный. База ID виджета, который санитизируется. По умолчанию: null.

Метод sanitize_widget_js_instance() возвращает преобразованный в JSON формат экземпляр виджета в виде массива.

<code>// Пример использования метода sanitize_widget_js_instance()
$instance = array(
  'title' => 'My Widget',
  'text' => 'Hello, World!',
  'color' => '#ff0000'
);
$id_base = 'my_widget';
$sanitized_instance = WP_Customize_Widgets::sanitize_widget_js_instance( $instance, $id_base );
/*
Результат:
$sanitized_instance = array(
  'title' => 'My Widget',
  'text' => 'Hello, World!',
  'color' => '#ff0000'
);
*/

schedule_customize_register()

Метод schedule_customize_register() класса WP_Customize_Widgets используется для обеспечения доступности виджетов для всех типов предварительного просмотра. Он позволяет зарегистрировать виджеты в пользовательском интерфейсе настройки темы WordPress, чтобы они были доступны для предварительного просмотра и настройки.

Метод schedule_customize_register() гарантирует, что виджеты будут доступны для всех типов предварительного просмотра, включая предварительный просмотр на сайте, в административной панели и в пользовательском интерфейсе настройки темы. Он обеспечивает синхронизацию виджетов между различными предварительными просмотрами и сохраняет их состояние при переключении между предварительными просмотрами.

WP_Customize_Widgets::schedule_customize_register();

Метод schedule_customize_register() вызывается без параметров и не возвращает значения. Он выполняет необходимые действия для регистрации виджетов в пользовательском интерфейсе настройки темы и обеспечения их доступности для всех типов предварительного просмотра.

Этот метод обычно вызывается в контексте хука customize_register, который используется для регистрации пользовательских настроек и элементов управления в пользовательском интерфейсе настройки темы. Вызов schedule_customize_register() гарантирует, что виджеты будут доступны для настройки и предварительного просмотра в пользовательском интерфейсе настройки темы.

selective_refresh_init()

Метод selective_refresh_init() добавляет хуки для селективного обновления виджетов. Он используется для обновления содержимого виджетов без перезагрузки всей страницы.

WP_Customize_Widgets::selective_refresh_init();

Этот код добавляет хуки для селективного обновления виджетов. Он должен быть вызван после инициализации объекта WP_Customize_Widgets.

Метод selective_refresh_init() работает следующим образом:

  • Добавляет хук customize_register для регистрации селективного обновления виджетов.
  • Добавляет хук customize_preview_init для инициализации селективного обновления виджетов в режиме превью.
  • Добавляет хук customize_controls_enqueue_scripts для подключения JavaScript-файла, необходимого для селективного обновления виджетов в режиме настройки.

setup_widget_addition_previews()

Метод setup_widget_addition_previews() является устаревшим и был заменен фильтром customize_dynamic_setting_args. Он не имеет подробного описания и документации.

WP_Customize_Widgets::setup_widget_addition_previews();

Метод setup_widget_addition_previews() вызывается для настройки предварительного просмотра виджетов при добавлении их в пользовательскую панель управления (Customizer) WordPress. Он устанавливает аргументы для динамических настроек виджетов.

should_load_block_editor_scripts_and_styles()

Метод should_load_block_editor_scripts_and_styles() класса WP_Customize_Widgets используется для указания загрузки скриптов и стилей пользовательских блоков, если редактор виджетов блоков включен.

Метод проверяет текущее решение о загрузке ресурсов блоков и возвращает отфильтрованное решение.

WP_Customize_Widgets::should_load_block_editor_scripts_and_styles( bool $is_block_editor_screen ): bool

Метод should_load_block_editor_scripts_and_styles() принимает один обязательный параметр:

  • $is_block_editor_screen (bool) — Текущее решение о загрузке ресурсов блоков.
  • $is_block_editor_screen (bool) — Обязательный. Текущее решение о загрузке ресурсов блоков.

Параметр $is_block_editor_screen определяет, должны ли загружаться скрипты и стили пользовательских блоков.

Метод should_load_block_editor_scripts_and_styles() возвращает отфильтрованное решение о загрузке ресурсов блоков.

Тип возвращаемого значения — bool.

<code>/**
 * Пример использования метода should_load_block_editor_scripts_and_styles()
 *
 * @param bool $is_block_editor_screen Текущее решение о загрузке ресурсов блоков.
 *
 * @return bool Отфильтрованное решение о загрузке ресурсов блоков.
 */
function example_should_load_block_editor_scripts_and_styles( $is_block_editor_screen ) {
    // Ваш код здесь.
    // ...
    return $is_block_editor_screen;
}

start_capturing_option_updates()

Метод start_capturing_option_updates() класса WP_Customize_Widgets используется для начала отслеживания изменений опций виджетов и кэширования новых значений.

Этот метод позволяет отслеживать изменения опций виджетов, чтобы использовать их в дальнейшем. Он кэширует новые значения опций виджетов, чтобы можно было получить доступ к ним позже.

WP_Customize_Widgets::start_capturing_option_updates();

Вызов этого метода позволяет начать отслеживание изменений опций виджетов и кэширование новых значений.

После вызова этого метода, все изменения опций виджетов будут отслеживаться и сохраняться для дальнейшего использования.

start_dynamic_sidebar()

Метод start_dynamic_sidebar() начинает отслеживать текущую боковую панель, которая отображается. Он используется для отслеживания боковых панелей, которые были зарегистрированы в теме и выводятся на странице.

WP_Customize_Widgets::start_dynamic_sidebar( int|string $index )

Метод start_dynamic_sidebar() принимает один обязательный параметр:

  • $index: Индекс, имя или ID динамической боковой панели (тип данных: int|string, обязательный).

Метод start_dynamic_sidebar() принимает следующий параметр:

  • $index: Индекс, имя или ID динамической боковой панели (тип данных: int|string, обязательный). Этот параметр указывает на боковую панель, которую нужно отслеживать.
<code>// Начинаем отслеживать боковую панель с индексом 'sidebar-1'
WP_Customize_Widgets::start_dynamic_sidebar( 'sidebar-1' );</code>

В приведенном выше примере мы используем метод start_dynamic_sidebar() класса WP_Customize_Widgets, чтобы начать отслеживать боковую панель с индексом ‘sidebar-1’. Это позволяет нам отслеживать и управлять виджетами, которые выводятся в этой боковой панели.

stop_capturing_option_updates()

Метод stop_capturing_option_updates() класса WP_Customize_Widgets используется для отмены любых изменений в опциях, которые были сделаны после начала захвата опций. Он отменяет изменения, которые были сделаны в опциях, но еще не были сохранены.

Метод stop_capturing_option_updates() является частью класса WP_Customize_Widgets, который отвечает за настройку виджетов в пользовательском интерфейсе WordPress.

WP_Customize_Widgets::stop_capturing_option_updates();

Этот код вызывает метод stop_capturing_option_updates() класса WP_Customize_Widgets.

Метод stop_capturing_option_updates() используется для отмены изменений в опциях, которые были сделаны после начала захвата опций. Он полезен, когда необходимо отменить изменения, которые были сделаны в опциях, но еще не были сохранены.

tally_rendered_widgets()

Метод tally_rendered_widgets() класса WP_Customize_Widgets отслеживает виджеты, которые были отрисованы.

Метод работает следующим образом:

  • Принимает в качестве параметра массив $widget, который представляет отрисованный виджет.
  • Записывает информацию о виджете во внутренний массив класса WP_Customize_Widgets.

Метод используется для отслеживания виджетов, которые были отрисованы на странице. Это может быть полезно, например, для анализа использования виджетов или для выполнения дополнительных действий после отрисовки определенного виджета.

WP_Customize_Widgets::tally_rendered_widgets( array $widget )

Метод tally_rendered_widgets() вызывается статически, используя класс WP_Customize_Widgets. Он принимает один обязательный параметр:

  • $widget (array) — Отрисованный виджет, который нужно учесть.

$widget (array) — Обязательный. Отрисованный виджет, который нужно учесть.

<?php
$widget = array(
  'id' => 'my_widget',
  'name' => 'My Widget',
  'type' => 'text',
  // Дополнительные параметры виджета
);
WP_Customize_Widgets::tally_rendered_widgets( $widget );
?>

В приведенном выше примере кода создается массив $widget, который представляет отрисованный виджет. Затем метод tally_rendered_widgets() вызывается, передавая этот массив в качестве параметра.

tally_sidebars_via_dynamic_sidebar_calls()

Метод tally_sidebars_via_dynamic_sidebar_calls() класса WP_Customize_Widgets используется для подсчета боковых панелей, отображаемых с помощью функции dynamic_sidebar(). Он определяет, есть ли виджеты в текущей боковой панели.

WP_Customize_Widgets::tally_sidebars_via_dynamic_sidebar_calls( bool $has_widgets, string $sidebar_id ): bool

Метод tally_sidebars_via_dynamic_sidebar_calls() принимает два параметра:

  • $has_widgets (обязательный) — указывает, есть ли виджеты в текущей боковой панели. Принимает значение true или false.
  • $sidebar_id (обязательный) — идентификатор боковой панели.

Метод tally_sidebars_via_dynamic_sidebar_calls() возвращает значение типа bool, указывающее, есть ли виджеты в текущей боковой панели.

<?php
/**
 * Пример использования метода tally_sidebars_via_dynamic_sidebar_calls()
 *
 * @param bool $has_widgets     Whether the current sidebar has widgets.
 * @param string $sidebar_id    Sidebar ID.
 *
 * @return bool                 Whether the current sidebar has widgets.
 */
$has_widgets = WP_Customize_Widgets::tally_sidebars_via_dynamic_sidebar_calls( true, 'sidebar-1' );
?>

tally_sidebars_via_is_active_sidebar_calls()

Метод tally_sidebars_via_is_active_sidebar_calls() класса WP_Customize_Widgets используется для подсчета боковых панелей, отображаемых с помощью функции is_active_sidebar(). Он определяет, является ли боковая панель активной, и возвращает логическое значение.

WP_Customize_Widgets::tally_sidebars_via_is_active_sidebar_calls( bool $is_active, string $sidebar_id ): bool

Метод tally_sidebars_via_is_active_sidebar_calls() принимает два обязательных параметра: $is_active (логическое значение, указывающее, является ли боковая панель активной) и $sidebar_id (строка, идентифицирующая боковую панель). Он возвращает логическое значение, указывающее, является ли боковая панель активной.

$is_active (логическое значение, обязательно): Указывает, является ли боковая панель активной.

$sidebar_id (строка, обязательно): Идентификатор боковой панели.

Метод tally_sidebars_via_is_active_sidebar_calls() возвращает логическое значение, указывающее, является ли боковая панель активной.

<?php
/**
 * Пример использования метода tally_sidebars_via_is_active_sidebar_calls()
 *
 * @param bool $is_active     Указывает, является ли боковая панель активной.
 * @param string $sidebar_id  Идентификатор боковой панели.
 *
 * @return bool               Является ли боковая панель активной.
 */
$is_active = true;
$sidebar_id = 'sidebar-1';
$result = WP_Customize_Widgets::tally_sidebars_via_is_active_sidebar_calls( $is_active, $sidebar_id );
?>

wp_ajax_update_widget()

Метод wp_ajax_update_widget() является частью класса WP_Customize_Widgets и используется для асинхронного обновления настроек виджета.

Этот метод обновляет настройки виджета асинхронно, без перезагрузки страницы. Он вызывается при отправке AJAX-запроса и обрабатывает данные, переданные в запросе, чтобы обновить настройки виджета.

WP_Customize_Widgets::wp_ajax_update_widget()

Этот метод является обработчиком AJAX-запроса для обновления виджета. Он вызывается при отправке AJAX-запроса и обрабатывает данные, переданные в запросе, чтобы обновить настройки виджета.

Внутри метода происходит следующее:

  • Проверяется, что текущий пользователь имеет право обновлять виджеты.
  • Получается идентификатор виджета и его настройки из данных запроса.
  • Проверяется, что виджет с таким идентификатором существует и что пользователь имеет право его редактировать.
  • Обновляются настройки виджета с помощью функции update_option().
  • Возвращается ответ в формате JSON с обновленными настройками виджета.

Этот метод используется внутри WordPress для обновления настроек виджета без перезагрузки страницы. Он может быть использован в пользовательских разработках для асинхронного обновления виджетов на фронтенде сайта.

_sort_name_callback()

Метод _sort_name_callback() класса WP_Customize_Widgets используется для естественной сортировки доступных виджетов по имени.

WP_Customize_Widgets::_sort_name_callback( array $widget_a, array $widget_b ): int

Метод _sort_name_callback() принимает два параметра: $widget_a и $widget_b. Он сравнивает их и возвращает позицию для сортировки виджетов.

$widget_a (array) (обязательный): Первый виджет для сравнения.

$widget_b (array) (обязательный): Второй виджет для сравнения.

Метод _sort_name_callback() возвращает целое число — позицию для сортировки виджетов.

<?php
/**
 * Пример использования метода _sort_name_callback()
 *
 * @param array $widget_a Первый виджет для сравнения.
 * @param array $widget_b Второй виджет для сравнения.
 *
 * @return int Позиция для сортировки виджетов.
 */
function example_sort_name_callback( $widget_a, $widget_b ) {
    // Ваш код для сравнения виджетов по имени
    return $position;
}
?>

__construct()

Метод «__construct()» является конструктором класса «WP_Customize_Widgets». Он выполняет инициализацию класса и загрузку необходимых файлов. Метод вызывается автоматически при создании нового объекта класса.

WP_Customize_Widgets::__construct( WP_Customize_Manager $manager )

Код выше представляет собой вызов конструктора класса «WP_Customize_Widgets» с параметром «$manager», который является экземпляром класса «WP_Customize_Manager».

$manager (обязательный) — экземпляр класса «WP_Customize_Manager». Это объект, который представляет собой экземпляр класса Customizer bootstrap и используется для управления настройками и виджетами.

<code>$manager</code> = new <code>WP_Customize_Manager</code>();
$widgets = new <code>WP_Customize_Widgets</code>( $manager );

В приведенном выше примере создается экземпляр класса «WP_Customize_Manager» с помощью конструктора «__construct()». Затем создается экземпляр класса «WP_Customize_Widgets» с параметром «$manager», который является экземпляром класса «WP_Customize_Manager».

Примеры использования

Инициализация класса WP_Customize_Widgets


$customize_widgets = new WP_Customize_Widgets();

Данный код создает новый экземпляр класса WP_Customize_Widgets и сохраняет его в переменной $customize_widgets.

Сортировка доступных виджетов по имени


$customize_widgets->_sort_name_callback( $widget_a, $widget_b );

Данный метод принимает два аргумента: $widget_a и $widget_b — объекты виджетов. Он сортирует эти виджеты по их именам и возвращает результат сравнения.

Вызов обновления и управления виджетами


$customize_widgets->call_widget_update( $widget_id, $widget_instance );

Данный метод принимает два аргумента: $widget_id — идентификатор виджета и $widget_instance — объект виджета. Он находит и вызывает обновление и управление виджетами для указанного виджета.

Предварительная фильтрация значений захваченных опций


$customize_widgets->capture_filter_pre_get_option( $value, $option, $default );

Данный метод принимает три аргумента: $value — значение опции, $option — имя опции и $default — значение по умолчанию. Он предварительно фильтрует захваченные значения опций перед их получением.

Подсчет захваченных обновлений опций виджетов


$customize_widgets->count_captured_options();

Данный метод возвращает количество захваченных обновлений опций виджетов.

Регистрация настроек и элементов управления Customizer для боковых панелей и виджетов


$customize_widgets->customize_register( $wp_customize );

Данный метод принимает один аргумент: $wp_customize — объект класса WP_Customize_Manager. Он регистрирует настройки и элементы управления Customizer для боковых панелей и виджетов.

Завершение отслеживания текущей боковой панели


$customize_widgets->end_dynamic_sidebar();

Данный метод завершает отслеживание текущей боковой панели, которая рендерится.

Подключение скриптов для предварительного просмотра Customizer


$customize_widgets->customize_preview_enqueue();

Данный метод подключает скрипты для предварительного просмотра Customizer.

Добавление хуков для предварительного просмотра Customizer


$customize_widgets->customize_preview_init();

Данный метод добавляет хуки для предварительного просмотра Customizer.

Получение доступных виджетов


$customize_widgets->get_available_widgets();

Данный метод возвращает индекс всех доступных виджетов для использования в моделях Backbone.

Получение захваченной опции


$customize_widgets->get_captured_option( $option );

Данный метод принимает один аргумент: $option — имя опции. Он возвращает захваченную опцию, которая была сохранена.

Определение активности панели виджетов


$customize_widgets->is_panel_active();

Данный метод определяет, активна ли панель виджетов, основываясь на наличии зарегистрированных боковых панелей.

Определение отображения боковой панели


$customize_widgets->is_sidebar_rendered( $sidebar_id );

Данный метод принимает один аргумент: $sidebar_id — идентификатор боковой панели. Он определяет, отображается ли указанная боковая панель на странице.

Определение отображения виджета


$customize_widgets->is_widget_rendered( $widget_id );

Данный метод принимает один аргумент: $widget_id — идентификатор виджета. Он определяет, отображается ли указанный виджет на странице.

Определение поддержки выборочного обновления виджета


$customize_widgets->is_widget_selective_refreshable( $widget_id );

Данный метод принимает один аргумент: $widget_id — идентификатор виджета. Он определяет, поддерживает ли указанный виджет выборочное обновление.

Вывод шаблонов элементов управления виджетами


$customize_widgets->output_widget_control_templates();

Данный метод выводит шаблоны элементов управления виджетами в DOM.

Переопределение боковых панелей для смены темы


$customize_widgets->override_sidebars_widgets_for_theme_switch( $sidebars_widgets );

Данный метод принимает один аргумент: $sidebars_widgets — массив боковых панелей и виджетов. Он переопределяет боковые панели для смены темы.

Преобразование ID виджета


$customize_widgets->parse_widget_id( $widget_id );

Данный метод принимает один аргумент: $widget_id — идентификатор виджета. Он преобразует идентификатор виджета в его компоненты id_base и number.

Преобразование ID настроек виджета


$customize_widgets->parse_widget_setting_id( $setting_id );

Данный метод принимает один аргумент: $setting_id — идентификатор настройки виджета. Он преобразует идентификатор настройки виджета в его компоненты id_base и number.

Предварительное добавление боковых панелей и виджетов


$customize_widgets->prepreview_added_sidebars_widgets( $sidebars_widgets );

Данный метод принимает один аргумент: $sidebars_widgets — массив боковых панелей и виджетов. Он предварительно добавляет боковые панели и виджеты.

Обновление виджета асинхронно


$customize_widgets->wp_ajax_update_widget();

Данный метод обновляет настройки виджета асинхронно.

Вопросы и ответы

Как добавить новый виджет в Customizer?

Для добавления нового виджета в Customizer необходимо использовать метод customize_register класса WP_Customize_Widgets. В этом методе регистрируются настройки и элементы управления для виджетов.


add_action( 'customize_register', function( $wp_customize ) {
    $wp_customize->register_control_type( 'WP_Widget_Customize_Control' );
    $wp_customize->register_section_type( 'WP_Widget_Customize_Section' );
    $wp_customize->register_panel_type( 'WP_Widget_Customize_Panel' );
    $wp_customize->register_setting_type( 'WP_Widget_Customize_Setting' );
    $wp_customize->register_partial_type( 'WP_Widget_Customize_Partial' );
} );

Как изменить настройки виджета в Customizer?

Для изменения настроек виджета в Customizer используется метод customize_register класса WP_Customize_Widgets. В этом методе можно зарегистрировать новые настройки и элементы управления для виджета.


add_action( 'customize_register', function( $wp_customize ) {
    $wp_customize->add_setting( 'widget_text', array(
        'default' => '',
        'type' => 'option',
        'capability' => 'edit_theme_options',
        'transport' => 'postMessage',
        'sanitize_callback' => 'sanitize_text_field',
    ) );
    $wp_customize->add_control( 'widget_text', array(
        'label' => __( 'Text Widget' ),
        'section' => 'sidebar-widgets',
        'type' => 'text',
    ) );
} );

Как удалить виджет из Customizer?

Для удаления виджета из Customizer необходимо использовать метод customize_register класса WP_Customize_Widgets. В этом методе можно удалить настройки и элементы управления для виджета.


add_action( 'customize_register', function( $wp_customize ) {
    $wp_customize->remove_setting( 'widget_text' );
    $wp_customize->remove_control( 'widget_text' );
} );

Как изменить порядок виджетов в Customizer?

Для изменения порядка виджетов в Customizer необходимо использовать метод customize_register класса WP_Customize_Widgets. В этом методе можно зарегистрировать настройки и элементы управления для виджетов, а также указать порядок их отображения.


add_action( 'customize_register', function( $wp_customize ) {
    $wp_customize->register_settings();
    $wp_customize->register_controls();
} );

Как настроить селективное обновление виджетов в Customizer?

Для настройки селективного обновления виджетов в Customizer необходимо использовать метод customize_preview_init класса WP_Customize_Widgets. В этом методе можно добавить хуки для селективного обновления виджетов при изменении их настроек.


add_action( 'customize_preview_init', function() {
    $wp_customize_widgets = new WP_Customize_Widgets();
    $wp_customize_widgets->customize_preview_init();
} );

Как настроить виджеты для разных сайдбаров в Customizer?

Для настройки виджетов для разных сайдбаров в Customizer необходимо использовать метод customize_register класса WP_Customize_Widgets. В этом методе можно зарегистрировать настройки и элементы управления для каждого сайдбара.


add_action( 'customize_register', function( $wp_customize ) {
    $wp_customize->register_settings();
    $wp_customize->register_controls();
    $wp_customize->customize_register();
} );

Как настроить виджеты для разных тем в Customizer?

Для настройки виджетов для разных тем в Customizer необходимо зарегистрировать настройки и элементы управления в функции customize_register. В этой функции можно указать, какие виджеты доступны для каждой темы.

function my_customize_register( $wp_customize ) {
    $wp_customize->register_control_type( 'WP_Customize_Widgets' );
    $wp_customize->add_section( 'my_widget_section', array(
        'title'    => __( 'My Widget Section', 'textdomain' ),
        'priority' => 30,
    ) );
    $wp_customize->add_setting( 'my_widget_setting', array(
        'default'           => '',
        'sanitize_callback' => 'sanitize_text_field',
    ) );
    $wp_customize->add_control( new WP_Customize_Widgets( $wp_customize, 'my_widget_control', array(
        'label'    => __( 'My Widget Control', 'textdomain' ),
        'section'  => 'my_widget_section',
        'settings' => 'my_widget_setting',
    ) ) );
}
add_action( 'customize_register', 'my_customize_register' );

Как настроить ширину виджетов в Customizer?

Для настройки ширины виджетов в Customizer можно использовать метод is_wide_widget класса WP_Customize_Widgets. Этот метод позволяет определить, является ли виджет «широким» и соответственно применить к нему нужные стили.

$widget_id = 'my_widget_id';
if ( WP_Customize_Widgets::is_wide_widget( $widget_id ) ) {
    // Применить стили для широкого виджета
}

Как настроить скрипты и стили для Customizer панели и предпросмотра?

Для настройки скриптов и стилей для Customizer панели и предпросмотра можно использовать методы enqueue_scripts, enqueue_styles, print_scripts и print_styles класса WP_Customize_Widgets. Эти методы позволяют добавить необходимые скрипты и стили в Customizer.

function my_customize_enqueue_scripts() {
    WP_Customize_Widgets::enqueue_scripts();
}
add_action( 'customize_controls_enqueue_scripts', 'my_customize_enqueue_scripts' );
function my_customize_enqueue_styles() {
    WP_Customize_Widgets::enqueue_styles();
}
add_action( 'customize_controls_print_styles', 'my_customize_enqueue_styles' );
function my_customize_print_scripts() {
    WP_Customize_Widgets::print_scripts();
}
add_action( 'customize_controls_print_scripts', 'my_customize_print_scripts' );
function my_customize_print_styles() {
    WP_Customize_Widgets::print_styles();
}
add_action( 'customize_controls_print_styles', 'my_customize_print_styles' );

Класс WP_Customize_Widgets предоставляет возможность настраивать виджеты в Customizer. С его помощью можно настроить виджеты для разных тем, управлять шириной виджетов и добавлять скрипты и стили для Customizer панели и предпросмотра.

Обсуждение