skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180etxt banner 468x60etxt banner 728x90etxt banner 930x180smsc banner 468x60smsc banner 728x90smsc banner 930x180

Как из srcset достать ссылку на самое большое изображение на php, WordPress?

В WordPress, тег <img> с атрибутом srcset может содержать несколько URL изображений с разными размерами. Чтобы на PHP достать URL самого большого изображения из srcset, нужно распарсить этот атрибут и выбрать изображение с наибольшей шириной.

Пример кода для WordPress:

function get_largest_image_from_srcset($srcset) {
    // Разбиваем строку srcset на отдельные элементы
    $images = explode(',', $srcset);
    
    // Инициализация переменных для хранения самого большого изображения
    $largest_image = '';
    $max_width = 0;
    
    foreach ($images as $image) {
        // Очищаем пробелы и разбиваем на части: URL и ширину
        list($url, $width) = array_map('trim', explode(' ', trim($image)));
        
        // Убираем "w" из ширины и приводим к целому числу
        $width = intval($width);
        
        // Проверяем, если ширина больше текущей максимальной, обновляем данные
        if ($width > $max_width) {
            $max_width = $width;
            $largest_image = $url;
        }
    }
    
    // Возвращаем URL самого большого изображения
    return $largest_image;
}

// Пример использования в WordPress
$post_thumbnail_id = get_post_thumbnail_id();
$srcset = wp_get_attachment_image_srcset($post_thumbnail_id);
$largest_image = get_largest_image_from_srcset($srcset);

echo $largest_image; // Вывод URL самого большого изображения

Пояснения:

  1. explode(',', $srcset); – разбивает строку srcset на массив изображений по запятой.
  2. list($url, $width) = array_map('trim', explode(' ', trim($image))); – разделяет каждое изображение на URL и ширину.
  3. intval($width); – преобразует ширину в целое число, чтобы можно было сравнивать размеры.
  4. Проверка и обновление максимальной ширины – если текущее изображение больше по ширине, чем предыдущее, обновляем значение.

Этот код проверяет srcset и возвращает URL самого большого изображения.

etxt banner 480x320etxt banner 728x90etxt banner 120x600smsc banner 480x320smsc banner 728x90smsc banner 120x600jivo banner 480x320jivo banner 728x90jivo banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как из стандартного типа записи post удалить «uncategorized» из ссылки в WordPress?

При создании записей в WordPress без указания категории по умолчанию им присваивается категория «Без рубрики» («Uncategorized»). Это приводит к появлению лишней части ссылки, например: https://example.com/bez-rubriki/nazvanie-zapisi. Если вы хотите убрать «bez-rubriki» из URL, то вам потребуется немного модифицировать настройки и добавить пользовательский код. В этой статье я покажу, как это сделать и избежать ошибок 404. Шаг…
Подробнее

Как на WordPress сделать архивную страницу со всеми авторами и структуру ссылок домен/authors/author

Чтобы сделать архивную страницу в WordPress, которая перечисляет всех авторов и предоставляет доступ к их страницам профилей через структуру ссылок вида домен/authors/author, нужно выполнить следующие шаги: 1. Создание пользовательской страницы для архива авторов Создайте файл шаблона: В вашей активной теме создайте файл page-authors.php. Это будет специальная страница, отображающая список всех авторов. Добавьте код для вывода…
Подробнее

Как сделать функцию для редиректа со старых ссылок сайта на новые в WordPress?

Для создания функции редиректа в WordPress со старых ссылок на новые, можно использовать файл .htaccess или написать специальный код в functions.php темы. Рассмотрим оба варианта: 1. Редирект через .htaccess Если вам нужно выполнить редиректы для множества старых URL, проще всего это сделать через файл .htaccess в корне вашего сайта. Для этого откройте или создайте файл…
Подробнее