Описание функции shortcode_atts()
Функция shortcode_atts() позволяет задавать значения по умолчанию для атрибутов шорткодов, обеспечивая удобство работы с параметрами. Она объединяет массив значений по умолчанию с массивом атрибутов, переданным через шорткод, возвращая итоговый массив с установленными значениями.
Эта функция является полезным инструментом для разработчиков шорткодов, обеспечивая гибкость и контроль над параметрами, которые могут быть переданы в шорткод
Параметры
$default_attributes
Тип: array
Обязательный: Да
По умолчанию: array()
Описание: Массив значений по умолчанию для атрибутов шорткода
Возможные значения:
$atts
Тип: array
Обязательный: Да
По умолчанию: array()
Описание: Массив атрибутов, переданных через шорткод
Возможные значения:
Возвращаемое значение
Тип: array
Описание: Массив объединенных атрибутов, содержащий значения по умолчанию и переданные значения
Возможные значения:
• Массив с атрибутами, где отсутствующие значения заменены значениями по умолчанию
Примеры использования
Простой пример использования функции для установки значений по умолчанию для шорткода
$atts = shortcode_atts(array('color' => 'blue', 'size' => 'medium'), $atts);
// Теперь $atts будет содержать значения, либо установленные по умолчанию, либо переданные
Показано, как переданные параметры заменяют значения по умолчанию
$atts = shortcode_atts(array('color' => 'blue', 'size' => 'medium'), array('size' => 'large'));
// $atts теперь будет array('color' => 'blue', 'size' => 'large')
Обработка случая, когда атрибут не был передан
$atts = shortcode_atts(array('color' => 'blue', 'size' => 'medium'), $atts);
if (!isset($atts['color'])) {
$atts['color'] = 'blue'; // Устанавливаем значение по умолчанию
}
Создание шорткода с использованием shortcode_atts для обработки атрибутов
function my_shortcode($atts) {
$atts = shortcode_atts(array('color' => 'blue', 'size' => 'medium'), $atts);
return 'Color: '.$atts['color'].', Size: '.$atts['size'];
}
add_shortcode('my_shortcode', 'my_shortcode');
Безопасность
Валидация входных данных: Функция не выполняет валидацию входящих данных, поэтому необходимо это делать в пользовательском коде
Санитизация: Необходима ручная очистка входящих значений перед их использованием
Рекомендации: Всегда проверяйте и очищайте входные параметры перед их использованием
— Связанные функции
Регистрация нового шорткода
Выполнение шорткода внутри контента
— Примечания
– Ограничения
Не обрабатывает вложенные массивы, только плоские
– Частые проблемы
- Неправильное объединение массивов из-за ошибок в параметрах
- Отсутствие значений по умолчанию при неправильном использовании