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' ) );