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

Дозволяє змінити параметри, передані в 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 (число)
      Номер використання множинного підключення одного і того ж віджету.

Приклади

0

#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;
}
0

#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;
}
0

#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_params

wp-includes/widgets.php 803

$params = apply_filters('dynamic_sidebar_params', $params);

wp-includes/widgets.php 2012

$params = apply_filters('dynamic_sidebar_params', $params);

Де використовується хук у WordPress

wp-includes/class-wp-customize-widgets.php 1758

add_filter( 'dynamic_sidebar_params', array( $this, 'filter_dynamic_sidebar_params' ) );

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *