Комментарии 1 — shortcode_atts() — Объединяет указанные атрибуты (параметры) шоткода с известными атрибутами (из белого списка). Остаются только белые атрибуты. Устанавливает значение атрибута по умолчанию, если он не указан. Функция WordPress.

Опубликовано: 01.09.2018

Объединяет указанные атрибуты (параметры) шоткода с известными атрибутами (из белого списка). Остаются только белые атрибуты. Устанавливает значение атрибута по умолчанию, если он не указан.

Результат будет содержать ключи из значения атрибутов из параметра $atts, которые есть в параметре $pairs. Т.е. $pairs - это параметры по умолчанию, а $atts передаваемые параметры и в передаваемых параметрах не может ключей, которых нет в дефолтных. Это своего рода, белый список атрибутов шорткода...


Функция shortcode atts() и хук - шоткоды WordPress - уроки и гайды

Описание и примеры в видеоформате:
Хуки из функции:
Возвращает

Массив. Собранный и отфильтрованный список атрибутов.

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

shortcode_atts( $pairs, $atts, $shortcode ); $pairs(массив) (обязательный) Список поддерживаемых атрибутов и их значения по умолчанию.

По умолчанию: нет $atts(массив) (обязательный) Атрибуты определенные в шоткоде. Которые нужно сравнить с массивом выше.

По умолчанию: нет $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

Оба атрибута шоткода произвольные и если они не указаны в шоткоде, то будут содержать значения по умолчанию.

Код shortcode atts : wp-includes/shortcodes.php VER 4.9.6

<?php function shortcode_atts( $pairs, $atts, $shortcode = '' ) { $atts = (array)$atts; $out = array(); foreach ($pairs as $name => $default) { if ( array_key_exists($name, $atts) ) $out[$name] = $atts[$name]; else $out[$name] = $default; } /** * Filters a shortcode's default attributes. * * If the third parameter of the shortcode_atts() function is present then this filter is available. * The third parameter, $shortcode, is the name of the shortcode. * * @since 3.6.0 * @since 4.4.0 Added the `$shortcode` parameter. * * @param array $out The output array of shortcode attributes. * @param array $pairs The supported attributes and their defaults. * @param array $atts The user defined shortcode attributes. * @param string $shortcode The shortcode name. */ if ( $shortcode ) { $out = apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts, $shortcode ); } return $out; }

Cвязанные функции

Из раздела: Шорткоды

Danya 47

Программист фрилансер. Кодингом на PHP занимаю с 2008 года.

rss