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

В WordPress по умолчанию у всех загруженных изображений автоматически добавляется атрибут alt. Это важно для SEO и доступности, однако в некоторых случаях может возникнуть необходимость удалить или изменить этот атрибут программно. В этой статье мы подробно разберём, как убрать атрибут alt из тегов изображений на сайте WordPress, рассмотрим подходящие хуки и приведём практические примеры кода.

Почему стоит удалять атрибут alt в WordPress

Атрибут alt предназначен для описания изображения и помогает поисковым системам и вспомогательным технологиям понять, что изображено на картинке. Но иногда:

  • Вы используете декоративные изображения, и хотите, чтобы они были полностью игнорированы читателями экранов;
  • Не хотите дублировать или некорректно заполнять атрибуты alt, которые добавляются автоматически;
  • Нужно убрать атрибут alt для определённых изображений, например, из контента или галерей.

В таких ситуациях удаление атрибута alt становится полезным решением.

Как WordPress добавляет атрибут alt к изображениям

Атрибут alt добавляется в HTML-теги <img> в нескольких местах:

  • При вставке изображения через редактор — WordPress берёт значение из поля "Альтернативный текст" медиабиблиотеки.
  • Функция wp_get_attachment_image() автоматически добавляет alt, если он задан.
  • Галереи, шорткоды и плагины также могут формировать атрибут alt.

Это означает, что чистое удаление атрибута alt — задача нетривиальная и требует вмешательства на уровне фильтров и хуков.

Удаление атрибута alt с помощью фильтра wp_get_attachment_image_attributes

Самый надёжный и правильный способ — использовать фильтр wp_get_attachment_image_attributes, который позволяет менять атрибуты изображения перед выводом на страницу. Он применяется в функциях, рендерящих изображения.

Ниже пример кода, который удаляет атрибут alt для всех изображений на сайте:

add_filter('wp_get_attachment_image_attributes', 'wpskills_remove_image_alt', 10, 3);
function wpskills_remove_image_alt($attr, $attachment, $size) {
    if (isset($attr['alt'])) {
        unset($attr['alt']);
    }
    return $attr;
}

Если хотите удалить alt только для изображений определённого размера, например, thumbnail, добавьте проверку:

add_filter('wp_get_attachment_image_attributes', 'wpskills_remove_thumbnail_alt', 10, 3);
function wpskills_remove_thumbnail_alt($attr, $attachment, $size) {
    if ($size === 'thumbnail' && isset($attr['alt'])) {
        unset($attr['alt']);
    }
    return $attr;
}

Удаление атрибута alt из контента поста

Если изображения вставлены в контент через редактор, то они выводятся в HTML, где alt уже может присутствовать. Чтобы удалить атрибут alt из таких изображений, можно использовать фильтр the_content и регулярные выражения.

Пример функции, которая удаляет атрибут alt из всех изображений в контенте:

add_filter('the_content', 'wpskills_remove_alt_from_content_images');
function wpskills_remove_alt_from_content_images($content) {
    // Регулярное выражение для поиска alt="..."
    $content = preg_replace('/\salt=("[^"]*"|\'[^\']*\')/', '', $content);
    return $content;
}

Этот метод эффективен, но стоит использовать его аккуратно, так как регулярные выражения могут влиять на производительность на больших текстах.

Удаление атрибута alt из галереи WordPress

Галерея WordPress выводит изображения через шорткод [gallery], и alt берётся из медиабиблиотеки. Чтобы изменить его, можно перехватить вывод галереи с помощью фильтра post_gallery или изменить атрибуты через wp_get_attachment_image_attributes, как показано выше.

Для примера можно переопределить функцию генерации галереи и удалить alt:

add_filter('post_gallery', 'wpskills_gallery_remove_alt', 10, 3);
function wpskills_gallery_remove_alt($output, $attr, $instance) {
    // Получаем ID изображений из атрибутов шорткода
    if (empty($attr['ids'])) {
        return $output;
    }
    $ids = explode(',', $attr['ids']);
    $output = '<div class="wpskills-gallery">';
    foreach ($ids as $id) {
        $img = wp_get_attachment_image($id, 'thumbnail', false, array('alt' => ''));
        // Принудительно задаём пустой alt
        $img = preg_replace('/\salt=("[^"]*"|\'[^\']*\')/', '', $img);
        $output .= '<div class="wpskills-gallery-item">' . $img . '</div>';
    }
    $output .= '</div>';
    return $output;
}

Такой подход гарантирует, что alt будет отсутствовать в галерее.

Использование плагинов для управления атрибутами alt

Если не хочется писать код, можно использовать специализированные плагины, например:

  • Clearfy Pro — позволяет гибко управлять SEO-оптимизацией сайта, включая настройку alt и title для изображений.
  • WPRemark — расширяет возможности редактирования медиа и контента.

Такие решения помогут быстро настроить удаление или изменение атрибутов без вмешательства в код.

Советы по безопасности и SEO при удалении alt

Удаление атрибута alt негативно влияет на SEO и доступность сайта. Рекомендуется:

  • Удалять alt только у декоративных изображений, которые не несут смысловой нагрузки.
  • Использовать пустой атрибут alt (alt="") вместо полного удаления для декоративных фото, чтобы экранные читалки игнорировали их.
  • Проверять результаты на валидность HTML и тестировать с помощью инструментов доступности.

Если всё же необходимо удалить атрибут alt полностью, описанные методы помогут это сделать.

WooCommerce: как исправить проблему с неотображением атрибутов вариаций товаров
12.05.2026
WooCommerce: автоматическое удаление заказов по статусу и времени
30.05.2026
WooCommerce не отображает товары после обновления: как исправить
20.04.2026
Как правильно удалить кэш в WordPress: пошаговое руководство
10.11.2025
Удаление заголовка H1 на отдельных страницах WordPress
30.11.2025