wpcontrol.ru wordpress WPControl.ru

Как добавить атрибуты для изображений в WordPress без плагинов

Атрибуты 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.

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙