WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

shortcode_atts_(shortcode) хук-фильтр . WP 3.6

Фильтрует дефолтные атрибуты указанного шорткода.

Фильтры вызывается в функции shortcode_atts(), только в том случае если в ней указан третий параметр $shortcode (название шорткода). Т.е. если функция вызывается для реального шорткода, например смотрите код шорткода gallery_shortcode().

Базовые варианты хука:

  • shortcode_atts_gallery
  • shortcode_atts_caption
  • shortcode_atts_playlist
  • shortcode_atts_audio
  • shortcode_atts_video
О хуке и функции shortcode_atts() в видеоформате:

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

add_filter( 'shortcode_atts_{$shortcode}', '____filter_function_name', 10, 4 );
function ____filter_function_name( $out, $pairs, $atts, $shortcode ) {
	// Фильтр...

	return $out;
}
$out(массив)
Ассоциативный массив атрибутов шорткода, который будет изменяться при фильтрации.
$pairs(массив)
Массив всех возможных атрибутов шорткода и их значения по умолчанию.
$atts(массив)
Атрибуты указанные для шорткода пользователем.
$shortcode(строка)
Название шорткода, например gallery. Это название указывается в название этого фильтра, в конце.

Примеры

#1 Изменим количество колонок галереи по умолчанию

По умолчанию в галереи установлено 3 колонки, а нам нужно сделать 2. Т.е. если в тексте шорткод указан так [gallery_ ids="54,65,65"], то картинки будут выведены в 3 колонки, а нам нужно сделать в 2 колонки.

Для этого используем хук shortcode_atts_gallery и добавим получившийся код в файл темы functions.php

## Установим две колонки в галереи по умолчанию
add_filter('shortcode_atts_gallery', 'set_default_gallery_columns', 10, 3);
function set_default_gallery_columns( $out, $pairs, $atts ){
	// изменим значение по умолчанию, если значение не установлено
	if( ! isset($atts['columns']) ){
		$out['columns'] = 2;
	}

	return $out;
}

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

shortcode_atts()
shortcode_atts_(shortcode)
wp-includes/shortcodes.php 557
$out = apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts, $shortcode );

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

wp-includes/widgets/class-wp-widget-text.php 257
add_filter( 'shortcode_atts_gallery', array( $this, '_filter_gallery_shortcode_attrs' ) );
wp-includes/widgets/class-wp-widget-text.php 310
remove_filter( 'shortcode_atts_gallery', array( $this, '_filter_gallery_shortcode_attrs' ) );
wp-includes/widgets/class-wp-widget-custom-html.php 125
add_filter( 'shortcode_atts_gallery', array( $this, '_filter_gallery_shortcode_attrs' ) );
wp-includes/widgets/class-wp-widget-custom-html.php 156
remove_filter( 'shortcode_atts_gallery', array( $this, '_filter_gallery_shortcode_attrs' ) );
1 коммент
  • Евгений

    Странно, но этот снипет "#1 Изменим количество колонок галереи по умолчанию" не работает. Пробовал подобные коды с других сайтов аналогично.
    Подскажите чём тут дело?

Здравствуйте, !     Войти . Зарегистрироваться