Описание функции wp_script_add_data()
Функция wp_script_add_data() используется для добавления дополнительных данных к зарегистрированным скриптам WordPress. Это может включать атрибуты, такие как ‘async’ или ‘defer’, которые управляют загрузкой скриптов, что может улучшить производительность страницы.
Функция полезна для разработчиков тем и плагинов, которые хотят контролировать, как их скрипты загружаются в документ
Параметры
$handle
Тип: string
Обязательный: Да
Описание: Уникальный идентификатор скрипта, к которому добавляются данные
$data
Тип: mixed
Обязательный: Да
Описание: Данные, которые будут добавлены к скрипту, могут быть строкой или массивом
Возможные значения:
0: async
1: defer
2: async, defer
Возвращаемое значение
Тип: bool
Описание: Возвращает true при успешном добавлении данных, false в случае неудачи
Возможные значения:
• true — данные успешно добавлены
• false — не удалось добавить данные, возможно, неверный handle
Примеры использования
Базовый пример добавления атрибута async
wp_script_add_data('my-script', 'async');
// Скрипт my-script будет загружен с атрибутом async
Это позволяет браузеру загружать скрипт асинхронно
Добавление нескольких атрибутов к скрипту
wp_script_add_data('my-script', array('async', 'defer'));
// Скрипт будет загружен с атрибутами async и defer
Это позволяет улучшить производительность загрузки страницы
Пример обработки ошибок при добавлении данных
if (!wp_script_add_data('unknown-script', 'async')) {
error_log('Не удалось добавить данные к скрипту');
}
// Проверка на успешность добавления
Логируем ошибку, если скрипт не найден
Пример использования функции в контексте плагина
add_action('wp_enqueue_scripts', function() {
wp_enqueue_script('my-script', 'path/to/script.js');
wp_script_add_data('my-script', 'defer');
});
Добавляем атрибут defer при регистрации скрипта
Безопасность
Валидация входных данных: Функция проверяет, существует ли указанный handle
Санитизация: Данные автоматически очищаются WordPress
Рекомендации: Необходимо использовать только безопасные значения для атрибутов
— Связанные функции
Регистрация и добавление скрипта в очередь загрузки
Удаление скрипта из очереди загрузки
— Примечания
– Ограничения
Функция не проверяет существование скриптов, если они не зарегистрированы
– Частые проблемы
- Неверный handle приводит к неудаче при добавлении данных
- Некорректные значения data могут игнорироваться