Как отобразить разный размер изображения для мобильных устройств
Я настроил следующее:
add_image_size( 'featured-image', 1600, 450, true );
который используется для отображения изображения во всю ширину на сайте, который я разрабатываю, но, как вы можете представить, на мобильных устройствах оно масштабируется до очень маленькой высоты и выглядит довольно странно.
Я создал новый размер изображения, который назвал 'featured-image-mobile'
с размерами 650px на 448px.
На самой странице я отображаю полноразмерное изображение следующим образом:
<img src="<?php the_post_thumbnail_url( 'featured-image' )?>"
alt="<?php echo $altTag; ?>"
title="<?php echo $titleTag; ?>">
Есть ли способ сохранить
the_post_thumbnail_url( 'featured-image' );
для всех разрешений экрана, кроме 650px, а затем изменить размер изображения на следующий?
the_post_thumbnail_url( 'featured-image-mobile' );

Вы можете выводить оба изображения и просто переключаться между ними с помощью CSS (я использую здесь базовые классы Bootstrap и опускаю ненужную разметку для ясности):
<div class="featured-image hidden-xs">
<img src="<?php the_post_thumbnail_url( 'featured-image' )?>" alt="Основное изображение записи" title="Основное изображение записи">
</div>
<div class="featured-image-mobile visible-xs-block">
<img src="<?php the_post_thumbnail_url( 'featured-image-mobile' )?>" alt="Мобильная версия изображения записи" title="Мобильная версия изображения записи">
</div>
Альтернативно, вы можете добавить мобильную версию изображения как пользовательский атрибут:
<img src="<?php the_post_thumbnail_url( 'featured-image' )?>" data-mob-src="<?php the_post_thumbnail_url( 'featured-image-mobile' )?>" alt="Изображение записи" title="Изображение записи">
И затем переключать источник изображения с помощью JavaScript на мобильных устройствах.

Вам нужно сделать условное выражение (if), чтобы изменить или выбрать часть для больших устройств или мобильных, если вы хотите установить разные изображения.
function isMobile() {
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
// Использование функции
if(isMobile()){
// Сделать что-то только для мобильных пользователей
the_post_thumbnail_url( 'featured-image-mobile' );
}
else {
// Сделать что-то только для пользователей компьютеров
the_post_thumbnail_url( 'featured-image' );
}
Больше примеров можно найти здесь https://stackoverflow.com/questions/4117555/simplest-way-to-detect-a-mobile-device

Проверка типа устройства на стороне сервера вышла из моды много лет назад. Это ломает кеширование и просто неразумно, если у вас нет каких-то очень специфичных потребностей.

@mark-kaplun Это предложение по бессмысленному использованию WP. Это зависит от знаний, а не от моды. Если что-то всё ещё работает (не устарело), этим можно пользоваться.

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