Поддержка Проблемы и решения Как вывести картинку кроп-размера не через миниатюру?

  • Миниатюра поста занята картинкой (она будет выводиться в списке постов в категории/метке). А есть другая картинка, которая выведется внутри статьи вначале текста и есть 2 размера этой картинки: 1900х800 (оригинальная загружаемая картинка) и кроп этой картинки 820х345.

    Сейчас, адрес этой картинки я вставляю в произвольное поле «slider-image» и вывожу где она нужна. Но появилась необходимость выводить не эту оригинальную картинку, а её кроп на 820х345.

    И вот вопрос: как без добавления еще одного произвольного поля как-то по-умному сделать её вывод?

    (PS): Была идея брать адрес из slider-image и через регулярку или -4 символа с конца (или по точке разбивать) дописывать к названию картинки «-820х345» , но как-то очень хрупко выглядит), подскажите добрые люди как можно порешать?

    • Тема изменена 5 лет, 5 месяцев назад пользователем SaW_3D.
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Yuri

    (@yube)

    Была идея брать адрес из slider-image и через регулярку или -4 символа с конца (или по точке разбивать) дописывать к названию картинки «-820х345» , но как-то очень хрупко выглядит)

    Да, регулярка — это очень ненадежно. Правильнее получать ID этого аттача (гугль в помощь) и запрашивать у движка url миниатюры нужных размеров. А еще лучше хранить в метаданных не урл картинки, а id медиафайла.

    И вот вопрос: как без добавления еще одного произвольного поля как-то по-умному сделать её вывод?

    По-умному в ПП вставлять не урл, а ID.
    Кроме того были готовые плагины для добавления доп изображений. Напр https://wordpress.org/plugins/multiple-featured-images/

    А выводить.. Любой размер/адрес миниатюры можно (и нужно) получить с пом функций. Напр wp_get_attachment_image, в которую передавать нужные размеры.

    А указанный плагин даже шорткоды имеет.

    Спасибо за ответы

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Как вывести картинку кроп-размера не через миниатюру?» закрыта для новых ответов.