WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

dynamic_sidebar_params хук-фильтр . WP 2.5.0

Позволяет изменить параметры, переданные в callback функцию отображения виджета.

Примечание: фильтр срабатывает как на лицевой части, так и в административной части сайта в том числе для неактивных виджетов боковой панели на экране виджетов.

Использование

add_filter( 'dynamic_sidebar_params', 'filter_function_name_7588' );
function filter_function_name_7588( $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 (число)
      Номер использования множественного подключения одного и того же виджета.

Примеры

#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 Введена.

Где вызывается хук

dynamic_sidebar()
dynamic_sidebar_params
wp-includes/widgets.php 738
$params = apply_filters( 'dynamic_sidebar_params', $params );

Где используется хук (в ядре WP)

wp-admin/includes/widgets.php 86
add_filter( 'dynamic_sidebar_params', 'wp_list_widget_controls_dynamic_sidebar' );
wp-includes/class-wp-customize-widgets.php 1619
add_filter( 'dynamic_sidebar_params', array( $this, 'filter_dynamic_sidebar_params' ) );
Glum 600
Редакторы: Kama 7602
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться