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