Атрибут alt у изображений играет важную роль для SEO и доступности сайта. Однако часто бывает ситуация, когда в медиабиблиотеке WordPress множество изображений с неправильными, пустыми или неинформативными alt атрибутами. Ручное исправление каждого изображения — трудоемкая задача, особенно на больших сайтах. В этой статье подробно разберем, как массово удалить или изменить атрибуты alt у изображений в WordPress с помощью кода и плагинов.
Почему важно правильно задавать alt для изображений
Атрибут alt — это альтернативный текст, который отображается, если картинка не загрузилась, и который читают поисковые роботы и программы для людей с нарушениями зрения. Правильный alt улучшает SEO, помогает в ранжировании по картинкам и делает сайт доступнее.
Часто при импорте или загрузке изображений alt либо не заполняется, либо содержит бессмысленные значения. Поэтому полезно уметь массово исправлять эти атрибуты.
Как массово удалить атрибут alt у изображений через SQL-запрос
Если нужно просто очистить все alt-тексты, можно сделать это напрямую в базе данных. В WordPress атрибут alt хранится в postmeta с ключом _wp_attachment_image_alt.
Вот пример SQL-запроса для удаления всех alt:
DELETE FROM wp_postmeta WHERE meta_key = '_wp_attachment_image_alt';
Этот запрос удалит все записи alt. Важно: перед выполнением сделайте резервную копию базы.
Если нужно очистить alt только у определённых изображений, можно добавить условие по post_id или другим параметрам.
Массовое изменение alt с помощью PHP-функции в теме или плагине
Для более гибкого подхода можно написать функцию, которая переберет вложения (attachments) и обновит alt на нужный текст или удалит его.
Пример функции для массового обновления alt у всех изображений на значение, равное названию файла:
function wpcat_update_all_image_alt() {
$args = [
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'post_status' => 'inherit',
];
$images = get_posts($args);
foreach ($images as $image) {
$file_path = get_attached_file($image->ID);
$file_name = basename($file_path);
$alt = pathinfo($file_name, PATHINFO_FILENAME);
update_post_meta($image->ID, '_wp_attachment_image_alt', $alt);
}
}
// Запуск функции, например, через admin_init
add_action('admin_init', 'wpcat_update_all_image_alt');
Эта функция переберёт все изображения и выставит alt, равный названию файла без расширения.
Как массово удалить alt через PHP
Если нужно массово удалить атрибут alt, можно сделать так:
function wpcat_delete_all_image_alt() {
$args = [
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'post_status' => 'inherit',
];
$images = get_posts($args);
foreach ($images as $image) {
delete_post_meta($image->ID, '_wp_attachment_image_alt');
}
}
add_action('admin_init', 'wpcat_delete_all_image_alt');
Запускать эти функции стоит только один раз. Можно после выполнения убрать хук, чтобы не обновлять alt при каждом заходе на страницу.
Использование плагинов для массового редактирования alt
Если не хочется писать код, существуют плагины, которые позволяют массово редактировать атрибуты alt:
- Enable Media Replace — позволяет заменить изображения, при этом можно обновить alt.
- Media Library Assistant — гибкий менеджер медиабиблиотеки с возможностью редактировать alt у нескольких файлов сразу.
- Auto Image Attributes From Filename With Bulk Updater — автоматически генерирует alt, title и description из имени файла, плюс есть массовое обновление.
Эти плагины доступны в репозитории WordPress и можно найти их, например, по запросам «bulk edit image alt WordPress».
Автоматизация заполнения alt при загрузке новых изображений
Чтобы не сталкиваться с проблемой пустых alt в будущем, можно использовать фильтр wp_generate_attachment_metadata и автоматически выставлять alt при загрузке.
Пример кода для добавления alt из имени файла:
function wpcat_auto_set_alt_on_upload($metadata, $attachment_id) {
$alt = get_post_meta($attachment_id, '_wp_attachment_image_alt', true);
if (empty($alt)) {
$file_path = get_attached_file($attachment_id);
$file_name = basename($file_path);
$alt_text = pathinfo($file_name, PATHINFO_FILENAME);
update_post_meta($attachment_id, '_wp_attachment_image_alt', $alt_text);
}
return $metadata;
}
add_filter('wp_generate_attachment_metadata', 'wpcat_auto_set_alt_on_upload', 10, 2);
Теперь при каждой загрузке изображению будет автоматически присвоен alt из имени файла, если он не был задан.
Практический пример: использование плагина Clearfy для управления SEO-атрибутами
Плагин Clearfy позволяет упростить управление SEO и оптимизацией сайта, включая работу с alt-атрибутами картинок. В Clearfy есть опции для автозаполнения alt и title у изображений, что можно использовать как альтернативу самостоятельным скриптам.
Для массового обновления alt в Clearfy можно воспользоваться функцией массового обновления SEO параметров в настройках плагина, что особенно удобно при больших объёмах медиа.
Советы и рекомендации
- Перед массовым изменением alt всегда делайте резервную копию базы данных.
- При массовом удалении alt учитывайте, что пустые alt могут ухудшить SEO.
- Если alt генерируется автоматически, лучше делать его осмысленным и информативным — например, брать из названия файла или из заголовка записи.
- Используйте плагины, если не уверены в коде, но при этом выбирайте те, которые регулярно обновляются и совместимы с вашей версией WordPress.
Массовое управление атрибутами alt — важный шаг к улучшению SEO и доступности сайта. С помощью приведённых способов вы сможете быстро и эффективно привести медиафайлы в порядок на вашем сайте WordPress.