wplinks.ru wordpress WPLinks.ru

Как автоматизировать обновление атрибутов alt и title изображений в WordPress

Диагностика проблемы: зачем обновлять атрибуты alt и title изображений

Часто при миграции сайта, смене темы или массовой загрузке изображений в WordPress отсутствуют или некорректно заполнены атрибуты alt и title. Это негативно сказывается на SEO и доступности сайта. Проверить текущие значения можно через инструменты разработчика браузера, а также с помощью SEO-сканеров, например Screaming Frog или Ahrefs.

Как проверить наличие alt и title у изображений в WordPress

  • Откройте страницу с изображениями в браузере.
  • Правой кнопкой мыши выберите «Просмотр кода» или используйте DevTools (F12).
  • Найдите тег <img> и проверьте наличие атрибутов alt и title.
  • Для массовой проверки используйте SQL-запросы к базе данных или плагины SEO-аудита.

Пошаговое решение: автоматическое обновление alt и title через функции WordPress

Реализуем код, который при загрузке изображения автоматически устанавливает атрибуты alt и title, если они пустые. В качестве примера используем название файла и метаданные поста.

add_filter('wp_generate_attachment_metadata', 'auto_set_image_alt_title', 10, 2);
function auto_set_image_alt_title($metadata, $attachment_id) {
    $attachment = get_post($attachment_id);
    $title = sanitize_text_field($attachment->post_title);

    $alt = get_post_meta($attachment_id, '_wp_attachment_image_alt', true);
    if (empty($alt)) {
        update_post_meta($attachment_id, '_wp_attachment_image_alt', $title);
    }

    if (empty($attachment->post_excerpt)) {
        wp_update_post([
            'ID' => $attachment_id,
            'post_excerpt' => $title // Используется как описание, может быть применено как title
        ]);
    }
    return $metadata;
}

Этот хук срабатывает при загрузке изображения, устанавливая alt и description (который можно использовать для title) равным названию файла или заголовку вложения.

Автоматическое обновление существующих изображений через WP-CLI

Для существующих медиафайлов оптимально использовать WP-CLI:

wp media list --field=ID | xargs -I % wp eval '
    $title = get_post_field("post_title", %);
    $alt = get_post_meta(%, "_wp_attachment_image_alt", true);
    if(empty($alt)) {
        update_post_meta(%, "_wp_attachment_image_alt", $title);
    }
    $post_excerpt = get_post_field("post_excerpt", %);
    if(empty($post_excerpt)) {
        wp_update_post(["ID" => %, "post_excerpt" => $title]);
    }
'

Это быстро и эффективно обновит метаданные без доступа к административной панели.

Проверка результата после внедрения

  • Загрузите новое изображение и проверьте в медиа-библиотеке, что поле "Альтернативный текст" заполнено.
  • Откройте страницу с изображением и убедитесь, что в HTML присутствуют атрибуты alt.
  • Для существующих файлов используйте WP-CLI или запросы к базе, чтобы убедиться, что метаданные обновлены.

Частые ошибки и как их исправить

  • Атрибуты не устанавливаются для новых загрузок: проверьте, что функция подключена в файле functions.php темы или в плагине, и что нет конфликтующих хуков.
  • Проблемы с кодировкой: если в названиях файлов есть спецсимволы, используйте sanitize_text_field и дополнительные фильтры для очистки текста.
  • Обновление старых изображений не сработало: убедитесь, что WP-CLI установлен и выполняется с нужными правами. Можно запускать команды порциями, чтобы избежать таймаутов.

Практические советы по безопасности и производительности

  • Не используйте автоматическое заполнение alt и title с помощью сторонних сервисов без проверки, чтобы избежать утечки данных.
  • Обрабатывайте большие объемы медиафайлов пакетно, чтобы не перегружать сервер.
  • Для сайтов на WooCommerce дополнительно проверяйте, что атрибуты изображений товаров корректны, так как это влияет на конверсию.

Сравнение способов автоматизации заполнения alt и title

СпособПлюсыМинусыКомпромисс
Код в functions.php с хукем wp_generate_attachment_metadataБыстро, без плагинов, контролируемоРаботает только для новых загрузокДобавить WP-CLI для обновления старых файлов
WP-CLI скрипт для массового обновленияЭффективно для большого числа файловТребует доступа к серверу и навыковИспользовать вместе с кодом для новых загрузок
Плагины SEO с автоматическим заполнениемМинимум кода, удобный интерфейсМогут влиять на производительность, лишние функцииИспользовать легкие плагины или кастомный код
×
Обнови свой WordPress!

Держи скидку 15% на премиум тему Reboot

Купить со скидкой ⋙