dynamic_sidebar_params
Позволяет изменить параметры, переданные в callback функцию отображения виджета.
Примечание: фильтр срабатывает как на лицевой части, так и в административной части сайта в том числе для неактивных виджетов боковой панели на экране виджетов.
Использование
add_filter( 'dynamic_sidebar_params', 'wp_kama_dynamic_sidebar_params_filter' ); /** * Function for `dynamic_sidebar_params` filter-hook. * * @param array $params * * @return array */ function wp_kama_dynamic_sidebar_params_filter( $params ){ // filter... return $params; }
- $params(массив)
-
args(массив)
Массив аргументов отображения виджета.-
name(строка)
Имя боковой панели, которой назначен виджет. -
id(строка)
ID боковой панели, которой назначен виджет. -
description(строка)
Описание боковой панели. -
class(строка)
Значение атрибута class для контейнера боковой панели. -
before_widget(строка)
Текст перед каждым виджетом на боковой панели. -
after_widget(строка)
Текст после каждого виджета на боковой панели. -
before_title(строка)
Текст перед отображением заголовка виджета. -
after_title(строка)
Текст после отображения заголовка виджета. -
widget_id(строка)
ID виджета. - widget_name(строка)
Название виджета.
-
-
widget_args(массив)
Массив аргументов нескольких виджетов.- number(число)
Номер использования множественного подключения одного и того же виджета.
- number(число)
-
Примеры
#1 Заменим класс контейнера названием виджета
add_filter( 'dynamic_sidebar_params', 'my_edit_widget_func' ); function my_edit_widget_func( $params ) { $class = str_replace( ' ', '-', $params[0]['widget_name'] ); $params[0]['before_title'] = '<h3 class="' . $class . '">' ; return $params; }
#2 Добавим картинку перед названием определенного виджета
add_filter( 'dynamic_sidebar_params', 'my_edit_widget_func' ); function my_edit_widget_func( $params ) { if ( $params[0]['widget_id'] == 'example-1' ) { $params[0]['before_title'] .= '<img src="' . get_stylesheet_directory_uri() . '/example-icon.png">'; } return $params; }
#3 Изменим класс контейнеров для четных виджетов
add_filter( 'dynamic_sidebar_params', 'change_class_for_even' ); function change_class_for_even( $params ) { global $widget_counter; if ( $params[0]['id'] == 'sidebar-1' ) { $widget_counter++; if ( $widget_counter % 2 == 0 ) { $params[0]['before_widget'] = '<section id="' . $params[0]['widget_id'] . '" class="widget-even">'; } } return $params; }
Список изменений
С версии 2.5.0 | Введена. |
Где вызывается хук
$params = apply_filters( 'dynamic_sidebar_params', $params );
$params = apply_filters( 'dynamic_sidebar_params', $params );
Где используется хук в WordPress
add_filter( 'dynamic_sidebar_params', 'wp_list_widget_controls_dynamic_sidebar' );
add_filter( 'dynamic_sidebar_params', array( $this, 'filter_dynamic_sidebar_params' ) );