Атрибуты alt и title для изображений играют важную роль в SEO и доступности сайта. Многие начинающие пользователи WordPress не уделяют им должного внимания, что снижает эффективность продвижения и удобство для посетителей с ограниченными возможностями. В этой статье разберём, как автоматически добавлять и управлять этими атрибутами с помощью собственного кода, без установки дополнительных плагинов.
Почему важны атрибуты alt и title для изображений
Атрибут alt — альтернативный текст, который отображается, если изображение не загрузилось, а также используется поисковыми системами и программами для чтения с экрана. Атрибут title показывает подсказку при наведении курсора на изображение.
Правильное заполнение этих атрибутов повышает SEO-оптимизацию сайта, улучшает индексирование изображений и делает контент доступнее. Автоматизация их генерации позволяет ускорить работу с большим количеством медиафайлов.
Как WordPress обрабатывает атрибуты alt и title по умолчанию
По умолчанию WordPress предлагает заполнить «Альтернативный текст» в медиа-библиотеке вручную. Если поле пустое, то в HTML-коде выводится пустой alt="", что не всегда хорошо с точки зрения SEO.
Для атрибута title WordPress использует название файла или заголовок вложения, но это не всегда информативно и корректно. Поэтому стоит реализовать улучшенную логику автоматического заполнения.
Автоматическое добавление атрибутов alt и title при загрузке изображения
Можно использовать хук wp_handle_upload, чтобы при загрузке изображений в медиа-библиотеку автоматически установить alt и title на основе имени файла или других данных.
Пример функции для автоматического заполнения атрибутов alt и title:
function wpcontrol_generate_image_attributes($metadata, $attachment_id) {
$attachment = get_post($attachment_id);
$title = $attachment->post_title;
// Если alt пустой, задаём на основе заголовка
if (!get_post_meta($attachment_id, '_wp_attachment_image_alt', true)) {
update_post_meta($attachment_id, '_wp_attachment_image_alt', $title);
}
// Обновим title если он пуст
if (empty($attachment->post_title)) {
wp_update_post(array(
'ID' => $attachment_id,
'post_title' => $title
));
}
return $metadata;
}
add_filter('wp_generate_attachment_metadata', 'wpcontrol_generate_image_attributes', 10, 2);Эта функция проверяет, есть ли у вложения alt-текст, и если нет — задаёт его из заголовка. Также гарантирует, что title не пустой.
Добавление атрибутов при выводе изображений в шаблонах темы
Даже если у медиафайлов заполнены alt и title, иногда нужно дополнительно контролировать вывод при вставке изображения в контент.
Для этого можно использовать фильтр wp_get_attachment_image_attributes, чтобы динамически менять или добавлять атрибуты перед выводом.
function wpcontrol_filter_image_attributes($attr, $attachment, $size) {
// Если alt пустой, поставим заголовок
if (empty($attr['alt'])) {
$attr['alt'] = get_post_field('post_title', $attachment->ID);
}
// Если title отсутствует, зададим его
if (empty($attr['title'])) {
$attr['title'] = get_post_field('post_excerpt', $attachment->ID);
}
return $attr;
}
add_filter('wp_get_attachment_image_attributes', 'wpcontrol_filter_image_attributes', 10, 3);Такой подход полезен, когда изображения вставляются в записи вручную или через редактор, и нужно обеспечить заполненность этих атрибутов для всех случаев.
Как массово обновить атрибуты alt и title для уже загруженных изображений
Если на сайте много медиафайлов с пустыми alt или title, можно написать скрипт для массового обновления.
Пример функции, которую можно выполнить один раз например через плагин для пользовательских функций или в файле темы:
function wpcontrol_mass_update_image_attributes() {
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'post_status' => 'inherit',
);
$images = get_posts($args);
foreach ($images as $image) {
$alt = get_post_meta($image->ID, '_wp_attachment_image_alt', true);
if (empty($alt)) {
update_post_meta($image->ID, '_wp_attachment_image_alt', $image->post_title);
}
if (empty($image->post_title)) {
wp_update_post(array(
'ID' => $image->ID,
'post_title' => sanitize_text_field($image->post_excerpt ?: 'Изображение'),
));
}
}
}
// Запускайте функцию один раз вручную
// wpcontrol_mass_update_image_attributes();Не забудьте после выполнения отключить вызов функции, чтобы не загружать сервер лишней обработкой.
Использование плагина Clearfy Pro для оптимизации атрибутов изображений
Если вы предпочитаете готовое решение с расширенными возможностями, обратите внимание на Clearfy Pro. Он позволяет автоматически добавлять и оптимизировать атрибуты alt/title, а также очищать лишние данные, что положительно влияет на скорость и SEO.
Кроме того, Clearfy Pro включает инструменты для удаления метаданных из изображений и ускорения загрузки страниц с большим количеством медиа.
Выводы и рекомендации
Добавление атрибутов alt и title для изображений без плагинов — вполне реальная задача, если знать, какие хуки использовать и как обрабатывать данные при загрузке и выводе медиа. Это повышает SEO и улучшает доступность сайта.
Используйте автоматизацию при загрузке и фильтры при выводе, чтобы не забывать про эти важные атрибуты. Для массовой обработки уже загруженных изображений пишите отдельные скрипты и запускайте их по необходимости.
Если вы хотите упростить себе работу, попробуйте Clearfy Pro — плагин с широким функционалом для оптимизации и улучшения WordPress.