Java, UX, HTML, CSS, WEB-design

Адаптивные изображения RICG для WordPress

[ad_1]

  • Тим Евко

  • 0 Комментарии

Адаптивные изображения RICG для WordPress

  • 8 минут чтения

  • WordPress, Плагины, Адаптивный дизайн, Методы (WP)

Краткое резюме ↬

Недавно я объединился с Мэтом Маркизом из группы сообщества адаптивных изображений, чтобы помочь интегрировать адаптивные изображения в платформу WordPress. Мы решили реорганизовать плагин, который я создал несколько месяцев назад, надеясь, что это приведет к более удобному и производительному решению.

Недавно я объединился с Мэтом Маркизом из группы сообщества адаптивных изображений, чтобы помочь интегрировать адаптивные изображения в платформу WordPress. Мы решили реорганизовать плагин, который я создал несколько месяцев назад, надеясь, что это приведет к более удобному и производительному решению.

После нескольких месяцев запросов на включение, разговоров в Slack и помощи основной команды WordPress мы, наконец, готовы поделиться тем, над чем мы работали. Вы можете загрузить и установить адаптивные изображения RICG из каталога плагинов WordPress, отслеживая при этом наш прогресс разработки на GitHub.

Что делает плагин?

WordPress не изменил способ вывода img тег через некоторое время. И хотя существует множество способов подключиться к родным функциям WordPress и изменить img snippet, это может быть ошеломляющим как для новичков, так и для разработчиков, не занимающихся темами. Прибавьте к этому сложность Picturefill и srcset спецификация, и у пользователей WordPress было мало возможностей для реализации чистого и правильно работающего решения для адаптивных изображений.

Еще после прыжка! Продолжить чтение ниже ↓

Дальнейшее чтение на SmashingMag:

  • Адаптивные изображения теперь в ядре WordPress
  • Автоматизация художественного оформления с помощью генератора контрольных точек адаптивного изображения
  • Представляем Генератор контрольных точек адаптивного изображения
  • Адаптивные изображения, сделанные правильно: руководство по И srcset
  • Адаптивные изображения в WordPress с художественным оформлением

Чтобы решить эту проблему, мы решили создать плагин, который дает пользователям адаптивные изображения, как только плагин установлен, без каких-либо дополнительных усилий. Никаких настроек администратора, конфигурации загрузки мультимедиа или кодирования не требуется. Плагин поставляется с одной зависимостью, полифиллом для браузеров, которые еще не поддерживают собственные адаптивные изображения. Удаление этого файла совершенно необязательно и не повлияет на функциональность плагина, если у пользователя современный браузер.

Как только изображение загружается через мультимедийный интерфейс, WordPress автоматически создает три варианта изображения разных размеров. Когда плагин активирован, добавление «Избранных» и изображений контента в сообщение вернет стандартную разметку изображений WordPress с добавленным srcset атрибут. Мы используем srcset потому что это самый простой атрибут для добавления как разработчиками, так и пользователями. В то время как picture предоставляет пользователю более богатый набор опций, мы чувствовали, что srcset Атрибут имеет смысл как готовое решение. Его также лучше использовать, когда вы сосредоточены на переключении разрешения больше, чем на художественном направлении (подробнее об этом позже в статье).


<a href="https://ricg.dev/wp-content/uploads/2015/01/image.jpg"><img loading="lazy" decoding="async" class="6" src="https://ricg.dev/wp-content/uploads/2015/01/image.jpg" srcset="https://ricg.dev/wp-content/uploads/2015/01/image-150x150.jpg 150w, https://ricg.dev/wp-content/uploads/2015/01/image-300x300.jpg 300w, https://ricg.dev/wp-content/uploads/2015/01/image-1024x1024.jpg 1024w, https://ricg.dev/wp-content/uploads/2015/01/image.jpg 1800w" alt="a cool responsive image" width="1800" height="1800"></a>

Плагин предназначен для обратной совместимости, что означает, что изображения, добавленные до установки плагина, будут реагировать при добавлении в публикацию или раздел «Избранное изображение». Это связано с тем, что он использует размеры изображений, ранее определенные WordPress, и размер активной темы. functions.php файл. Соотношение изображения будет поддерживаться на протяжении всего srcset массив, что означает, что изображения, отличающиеся от соотношения сторон исходного загруженного изображения, будут исключены.

Разработчики тем могут использовать плагин для размещения адаптивных изображений в любом месте с помощью tevkori_get_srcset_string() функция, которая принимает идентификатор и размер изображения в качестве параметров.


<img src="https://www.smashingmagazine.com/2015/02/ricg-responsive-images-for-wordpress/myimg.png" <?php echo tevkori_get_srcset_string( 11, 'medium' ); ?> />

Также есть tevkori_get_srcset_array() функция, которая принимает те же параметры и возвращает массив srcset значения для указанного изображения.

Как работает плагин?

Большая часть функциональности реализуется, когда изображение помещается в WYSIWYG-редактор WordPress. Поскольку все изображения с измененными размерами будут созданы в процессе загрузки, остается только создать массив, содержащий URL-адреса доступных изображений различных размеров, а также их размеры. Затем этот массив фильтруется для удаления размеров изображений с соотношением сторон, которые не соответствуют соотношению сторон полноразмерного изображения.

Массив создается вызовом wp_get_attachment_image_src() работу и сохранение результатов. При этом мы используем wp_get_attachment_metadata() для получения тех же результатов, но для всех возможных вариантов изображения. Затем соотношение рассчитывается путем умножения ширины каждого изображения на результат деления высоты исходного изображения на ширину исходного изображения. Если этот результат соответствует высоте исходного изображения, то изображение будет помещено в окончательный массив, который будет возвращен функцией tevkori_get_srcset_array() функция.

То tevkori_get_srcset_string() вызовы функций tevkori_get_srcset_array() и помещает результат внутрь srcset атрибут. Фильтр применяется к image_send_to_editor функция, где регулярное выражение используется для размещения результата tevkori_get_srcset_string() функционировать непосредственно после src атрибут на изображении. Тот же процесс происходит для избранных изображений с применением фильтра к post_thumbnail_html функция.

Если размер изображения изменится в редакторе поста, то плагин обнаружит это изменение и обновит srcset значение соответственно. Это гарантирует, что всегда поддерживается правильное соотношение сторон изображения. Чтобы включить эту функцию, мы используем JavaScript для подключения к wp.media объект и пересчет srcset атрибут, запустив те же расчеты соотношения изображений, что и в tevkori_get_srcset_array(). Прежде чем приступить к этому проекту, я не знал о wp.media объект и его полезные функции. Поскольку для него существует не так много документации, подробное объяснение того, как мы его используем, может быть полезным. Как оказалось, вы можете слушать image-update событие в редакторе сообщения, добавив прослушиватель событий в wp.media объект.


wp.media.events.on( 'editor:image-update', function( args ) {
  var image = args.image;
  //more function logic
});

С помощью этой функции разработчик темы может получить доступ к каждому изображению, как только оно будет обновлено в редакторе поста. Вы также можете воспользоваться Underscore, который используется в качестве зависимости загрузчиком мультимедиа для редактирования данных изображения на лету. В случае с нашим плагином мы используем полезную утилиту Underscore, чтобы получить соотношение размеров изображения после того, как editor:image-update событие запущено.


// Grab all of the sizes that match our target ratio and add them to our srcset array.
_.each(sizes, function(size){
  var softHeight = Math.round( size.width * metadata.height / metadata.width );

  // If the height is within 1 integer of the expected height, let it pass.
  if ( size.height >= softHeight - 1 && size.height <= softHeight + 1  ) {
    srcsetGroup.push(size.url + ' ' + size.width + 'w');
  }
});

Чтобы узнать больше о том, как мы подключаемся к wp.media объекта, обязательно посмотрите код в wp-tevko-responsive-images.js.

Размеры Атрибут

В настоящее время этот плагин не добавляет sizes атрибут, дополняющий srcset атрибут. Причина в том, что мы изначально поняли, что никогда не сможем предсказать, какими должны быть эти размеры, потому что они зависят от того, как оформлена тема пользователя. Пока мы работаем над решением этой проблемы, мы призываем всех пользователей включить sizes атрибут самостоятельно, либо вручную, либо с помощью другого плагина WordPress, такого как wp-lazysizes. Следует отметить, что спецификация адаптивных изображений недавно изменилась, и использование w дескриптор теперь должен сопровождаться sizes атрибут. Опуская sizes атрибут сделает разметку технически недействительной, но при этом вернется к размеру по умолчанию, равному 100vh.

Как насчет функций X, Y и Z?

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

Добавление этой функции в WordPress было бы невозможно без добавления довольно сложного интерфейса в загрузчик мультимедиа WordPress, потому что пользователь должен был бы иметь возможность определять все точки останова, а затем выбирать изображения для загрузки при достижении этих точек останова. Наша цель для этого плагина состоит в том, чтобы разрешить базовую реализацию адаптивных изображений, абсолютно не требующей настройки пользователем. Поэтому мы решили отказаться от этой функции. Однако мы сделаем все возможное, чтобы художественное оформление работало бок о бок с нашим плагином, поскольку мы расширяем API для разработчиков тем.

Ленивая загрузка и сжатие изображений — две другие функции, которые мы не планируем реализовывать просто потому, что они выходят за рамки более или менее стандартного решения для адаптивных изображений. Опять же, мы стремимся сделать возможным добавление этих функций для разработчиков тем, которые используют наш плагин через многофункциональный API.

Что дальше?

Хотя плагин доступен для скачивания и установки всем, мы активно работаем над его улучшением. Таким образом, пользователи могут ожидать частых обновлений, решенных проблем и улучшенного функционирования плагина с течением времени. Мы планируем добавить дополнительные функции, такие как sizes атрибут и хуки, которые позволяют разработчикам темы дополнительно настраивать плагин.

Еще одна особенность, которую нам еще предстоит рассмотреть, — это дескрипторы отношения, такие как 2x и 3x для вариантов использования «Retina». Также скоро появятся улучшенная документация и поддержка. В конце концов, мы хотели бы, чтобы этот плагин стал частью ядра WordPress, а это значит, что он останется минималистичным, без администратора и простым в использовании.

Сокрушительная редакция
(ил, ал, мл)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Адаптивные изображения RICG для WordPress

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Краткое описание по статье Адаптивные изображения RICG для WordPress

Название: Адаптивные изображения RICG для WordPress . Краткое описание: [ad_1] ⭐ Тим Евк . Дата публикации: 08.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»