shortcode_atts() WP 2.5.0

Обробляє атрибути (параметри) шорткоду: додає значення за промовчанням, коли потрібно і видаляє невідповідні атрибути.

Результат буде містити ключі зі значення атрибутів з $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

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

Код shortcode_atts() WP 6.0.2

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

	if ( $shortcode ) {
		/**
		 * Filters shortcode attributes.
		 *
		 * Якщо цей тривимірний параметр shortcode_atts() функція є дійсна, цей filtr available.
		 * The third parameter, $shortcode, is the name of the shortcode.
		 *
		 * @ Since 3.6.0
		 * @since 4.4.0 Added `$shortcode` parameter.
		 *
		 * @param array $out output array shortcode attributes.
		 * @param array $pairs Допоможуть атрибути і їх defaults.
		 * @param array $atts User defined shortcode attributes.
		 * @param string $shortcode The shortcode name.
		 */
		$out = apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts, $shortcode );
	}

	return $out;
}

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

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