В WordPress часто используется ленивый способ загрузки изображений (lazy loading), который позволяет загружать картинки только тогда, когда они становятся видимыми на экране пользователя. Это улучшает скорость загрузки страниц и экономит трафик. Однако в определённых случаях такие условия загрузки могут мешать корректному отображению изображений или создавать конфликты с другими плагинами и скриптами. В этой статье мы подробно разберём, как удалить или изменить условие загрузки картинок в WordPress, чтобы оптимизировать производительность и стабильность сайта.
Почему стоит управлять условием загрузки изображений в WordPress
По умолчанию, начиная с версии 5.5, WordPress добавляет атрибут loading="lazy" к тегам <img>. Это значит, что браузер будет загружать изображения по мере необходимости. Но бывают ситуации, когда такой подход нежелателен:
- Сложные слайдеры и галереи, где изображения должны загружаться сразу для плавной работы.
- Плагин, который конфликтует с ленивой загрузкой и ломает отображение картинок.
- Нестандартные темы, в которых условие загрузки добавляется несколько раз или неправильно.
В таких случаях полезно отключить ленивую загрузку либо модифицировать условие её срабатывания.
Как удалить ленивую загрузку изображений с помощью кода
Если вы хотите полностью отключить ленивую загрузку в WordPress, можно использовать фильтр wp_lazy_loading_enabled. Например, добавьте в файл functions.php вашей темы следующий код:
function wpcatalog_disable_lazy_loading( $default, $image, $context ) {
return false; // Отключаем ленивую загрузку для всех изображений
}
add_filter( 'wp_lazy_loading_enabled', 'wpcatalog_disable_lazy_loading', 10, 3 );Этот фильтр возвращает false, отключая добавление атрибута loading="lazy" для всех картинок на сайте. Если хотите отключить ленивую загрузку только для определённого типа изображений (например, только для миниатюр), можно расширить функцию, например:
function wpcatalog_conditional_lazy_loading( $default, $image, $context ) {
if ( $context === 'thumbnail' ) {
return false; // Не лениво загружаем миниатюры
}
return $default; // Для остальных — стандартное поведение
}
add_filter( 'wp_lazy_loading_enabled', 'wpcatalog_conditional_lazy_loading', 10, 3 );<Удаление встроенных условий ленивой загрузки в плагинах и темах
Некоторые плагины или темы могут самостоятельно добавлять свои условия загрузки изображений, например, через JavaScript или фильтры. Чтобы убрать такие условия, можно:
- Изучить исходный код плагина или темы, найти функцию, которая добавляет lazy loading.
- Удалить или переопределить эту функцию через
remove_filterилиremove_action. - Использовать JavaScript, чтобы убрать атрибут
loadingу нужных элементов при загрузке страницы.
Например, если плагин добавляет lazy loading через фильтр the_content, можно попробовать:
remove_filter( 'the_content', 'plugin_lazy_load_function' );где plugin_lazy_load_function — имя функции плагина.
Использование плагинов для управления условием загрузки картинок
Если вы не хотите писать код, можно использовать специализированные плагины для управления ленивой загрузкой:
- Clearfy Pro — содержит настройки для отключения ленивой загрузки и оптимизации изображений. Подробнее на wpshop.ru.
- WP Rocket — популярный плагин кеширования с гибкими настройками lazy load.
- Disable Lazy Load — простой плагин для полного отключения ленивой загрузки.
Пример настройки Clearfy Pro для отключения lazy load:
- Установите и активируйте Clearfy Pro.
- Перейдите в настройки плагина, вкладка "Оптимизация".
- Снимите галочку с опции "Lazy Load для изображений".
- Сохраните изменения и проверьте работу сайта.
Практические советы по тестированию и отладке
После удаления или изменения условия загрузки изображений важно проверить, что:
- Все картинки отображаются корректно и без задержек.
- Скорость загрузки страницы соответствует вашим ожиданиям (используйте инструменты типа Google PageSpeed Insights или GTmetrix).
- Не появилось новых конфликтов с другими плагинами и скриптами.
Если вы используете кастомные шаблоны или темы, убедитесь, что везде корректно обновлены вызовы функций вывода изображений. Иногда в шаблонах встречаются обёртки с дополнительными атрибутами, которые влияют на ленивую загрузку.
Пример функции для вывода изображения без ленивой загрузки
function wpcatalog_get_image_without_lazy( $attachment_id, $size = 'full' ) {
$img = wp_get_attachment_image( $attachment_id, $size, false, array( 'loading' => 'eager' ) );
return $img;
}В этом примере мы явно указываем атрибут loading="eager", чтобы браузер загрузил изображение сразу, игнорируя ленивую загрузку.
Заключение
Управление условием загрузки картинок в WordPress позволяет гибко настроить производительность и внешний вид сайта. Отключение ленивой загрузки может быть полезно в специфических сценариях, например, при проблемах с отображением или необходимостью мгновенного показа изображений. Используйте фильтры WordPress, плагины вроде Clearfy Pro и проверяйте работу сайта после внесения изменений, чтобы добиться оптимального результата.