Диагностика проблемы с атрибутами alt в WordPress
Атрибуты alt у изображений критичны для SEO и доступности сайта. Часто бывает, что при загрузке изображений в WordPress атрибуты alt либо пустые, либо некорректные (например, автоматически проставляется название файла без смысла). Чтобы исправить это, нужно массово изменить или удалить атрибуты alt для всех или выбранных изображений.
Проверить наличие и корректность alt можно через консоль браузера или используя инструменты аудита SEO (например, Lighthouse, Screaming Frog). Также можно вручную просмотреть HTML-код страниц.
Почему массовое редактирование атрибутов alt важно
- Улучшение SEO за счет релевантных описаний изображений;
- Повышение доступности сайта для пользователей с нарушениями зрения;
- Исправление ошибок при импорте или миграции контента;
- Экономия времени по сравнению с ручной правкой каждого изображения.
Как массово изменить или удалить атрибуты alt с помощью кода
1. Получение списка всех вложений с атрибутом alt
function get_all_attachments_with_alt() {
$args = [
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'post_status' => 'inherit',
];
return get_posts($args);
}2. Массовое обновление атрибутов alt
В WordPress атрибут alt хранится в метаполе _wp_attachment_image_alt. Чтобы изменить или удалить эти данные, используйте следующий код:
function update_alt_text_for_all_images($new_alt = '') {
$attachments = get_all_attachments_with_alt();
foreach ($attachments as $attachment) {
if ($new_alt === null) {
// Удалить атрибут alt
delete_post_meta($attachment->ID, '_wp_attachment_image_alt');
} else {
// Обновить атрибут alt
update_post_meta($attachment->ID, '_wp_attachment_image_alt', $new_alt);
}
}
}3. Пример вызова функции
Чтобы удалить все атрибуты alt:
update_alt_text_for_all_images(null);Чтобы массово заменить на одно и то же описание, например "Фото из галереи":
update_alt_text_for_all_images('Фото из галереи');Пошаговое решение задачи массового редактирования alt
- Создайте резервную копию базы данных перед изменениями.
- Подключитесь к сайту через FTP или SSH.
- В файле
functions.phpвашей дочерней темы или в отдельном кастомном плагине добавьте код из раздела выше. - Вызовите функцию
update_alt_text_for_all_images()с нужным параметром (null для удаления, строка для замены) один раз, например, через WP CLI или временно в коде. - Удалите или закомментируйте вызов функции после успешного выполнения, чтобы не запускать её повторно.
- Очистите кэш сайта и браузера.
Как проверить результат после внедрения
- Откройте медиа библиотеку и проверьте в режиме редактирования изображения значение поля "Атрибут alt".
- Просмотрите исходный код страниц с изображениями — атрибут
altдолжен быть пустым или содержать новое значение. - Используйте SEO инструменты (например, Google Lighthouse) для проверки доступности и наличия alt.
Частые ошибки и как их исправить
- Отсутствие резервной копии: Изменения в базе необратимы без бэкапа — всегда создавайте резерв.
- Функция вызывается многократно: Это может вызвать нагрузку и повторные ненужные изменения. Убедитесь, что вызов функции выполнен один раз.
- Неверное место для кода: Добавляйте код в дочернюю тему или отдельный плагин, не модифицируйте родительские темы.
- Кэширование: Если изменения не видны, очистите все слои кэша (плагин, сервер, CDN).
Практические советы по безопасности и производительности
- Не запускайте массовое обновление на живом сайте в часы пик, чтобы избежать нагрузки на базу.
- Ограничьте количество обновлений за один запрос, если у вас тысячи изображений, используя пагинацию в запросах
get_posts(). - Удаляйте или комментируйте код после выполнения, чтобы случайно не запустить повторно.
- Используйте WP CLI для массовых операций — это безопаснее и эффективнее, пример:
wp eval '
$attachments = get_all_attachments_with_alt();
foreach($attachments as $attachment) {
update_post_meta($attachment->ID, "_wp_attachment_image_alt", "Новое описание");
}
'Сравнение способов массового изменения атрибутов alt
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| Программный через код | Использование PHP функций и WP API | Полный контроль, не требует плагинов, гибко | Нужны навыки, риск ошибок без бэкапа |
| WP CLI | Командная строка для управления сайтом | Быстро, безопасно, без нагрузки на фронтенд | Требует доступа к серверу и знаний CLI |
| Плагины массового редактирования | Например, Media Library Assistant | Простота использования, интерфейс | Может тормозить, ограничения по массовости |