shortcode_atts()
Обрабатывает атрибуты (параметры) шорткода: добавляет значения по умолчанию когда нужно и удаляет неподходящие атрибуты.
Результат будет содержать ключи из значения атрибутов из параметра $atts, которые есть в параметре $pairs. Т.е. $pairs — это параметры по умолчанию, а $atts передаваемые параметры. В передаваемых параметрах не может быть ключей, которых нет в дефолтных. Это, своего рода, белый список атрибутов шорткода.
Читайте обязательно: Создание шорткода в WordPress
Описание и примеры в видео-формате:
Хуки из функции
Возвращает
Массив
. Собранный и отфильтрованный список атрибутов.
Использование
shortcode_atts( $pairs, $atts, $shortcode );
- $pairs(массив) (обязательный)
Ассоциативный массив который описывает возможные атрибуты шорткода (это ключи массива) и их дефолтные значения.
ВАЖНО! Ключи массива $defaults должны быть в lower-case. Не используйте camelCase или UPPER-CASE, потому что в $atts ключи всегда в lower-case.
- $atts(массив) (обязательный)
Неочищенный массив с данными, которые были указаны в шорткоде. Они будут сравниваться с массивом выше.
$atts будет содержать массив аргументов шорткода, которые были указанны пользователем.
Если указать значение без названия параметра, то они будут добавлены в индексные элементы массива. Например для шорткода
[name value attr="val2" val3]
получим:Array ( [0] => value [attr] => val2 [1] => val3 )
Имена атрибутов (ключи массива $atts) всегда конвертируются в lower-case (нижний регистр), значения никак не обрабатываются. Например, если мы указали шорткод так
[myshortcode FOO="BAR"]
, то в $atts получим[ 'foo' => 'BAR' ]
.- $shortcode(строка)
Название шоткода, который будет использоваться в фильтре: shortcode_atts_{$shortcode}.
С версии 3.6. передает параметр $atts в фильтр shortcode_atts_{$shortcode}, если указан параметр $shortcode.
По умолчанию: ''
Примеры
#1 Добавление шорткода
Создадим новый шоткод [bartag] с атрибутами foo и bar: [bartag foo="something" bar="something else"]
add_shortcode( 'bartag', 'shortcode_callback' ); function shortcode_callback( $atts ) { $atts = shortcode_atts( array( 'foo' => 'no foo', 'bar' => 'default bar', ), $atts, 'bartag' ); return 'bartag: ' . esc_html($atts['foo']) . ' ' . esc_html($atts['bar']); } // в результате шоткод: [bartag foo="koala" bar="bears"] // выведет: bartag: koala bears
Оба атрибута шоткода произвольные и если они не указаны в шоткоде, то будут содержать значения по умолчанию.
Список изменений
С версии 2.5.0 | Введена. |