В $content_width
ГЛОБАЛЬНОЙ в WordPress эффекты многие темы и даже некоторые плагины, ограничивая размер изображений и вкладывается в должности, это требование тем , представленных wordpress.org.
Это устанавливается с помощью:
$content_width = 584; // Twenty Twelve example
Если вы вставите в сообщение большое изображение (по умолчанию 1024x1024), это приведет к:
src="../wp-content/uploads/2013/02/IMG_1390-1024x682.jpg" width="584" height="328"
Если вместо этого вы удаляете этот глобальный параметр и вставляете фактический размер изображения, то его установка add_image_size
приводит к:
src="../wp-content/uploads/2013/02/IMG_13901-584x328.jpg" width="584" height="328"
Удаление глобальных и вставка больших изображений, что является очень распространенным явлением , часто приводит к экономии более чем в 2 раза. На страницах с несколькими изображениями я вижу сотни КБ, сохраненные при загрузке страницы.
Является ли использование add_image_size
и удаление возможности вставки полноразмерных изображений не лучшим вариантом?
пс. Я написал об этом здесь с более точными данными
Ответы:
Имейте в виду, что
$content_width
глобальный используется не только для изображений, но и для встроенных объектов, таких как видео. Таким образом, любое решение не будет просто прекращением использования / поддержки самого$content_width
себя.Обычно тема ограничивает изображения области содержимого несколькими способами:
$content_width
чего-то подходящего для дизайна темы#content img { max-width: XXX; height: auto; }
обеспечения того, чтобы вставляемые полноразмерные изображения не нарушали макетset_post_thumbnail_size()
для определенияthumbnail
размера по умолчанию для избранного изображения / миниатюрного изображения . (Примечание: я лично не рекомендую использовать этот метод. Определите нестандартные размеры изображения, специфичные для данного местоположения для избранного изображения, а затем вызовите этот нестандартный размер в определенном месте шаблона черезthe_post_thumbnail( $size )
.)Как вы обнаружили, из-за того, как WordPress выбирает промежуточный размер изображения для использования в любом данном запросе изображения, этот запрос может привести к масштабированию изображения в браузере.
Определенные темой значения для большого изображения
Один из вариантов - переопределить настройки для больших размеров изображения . (Действуйте с осторожностью. Это хорошо для вашего собственного сайта, но общедоступная тема, которая портится с настройками конфигурации пользователя, в лучшем случае ... серая область.)
Настройки размера большого изображения хранятся в виде:
Таким образом, вы можете установить эти значения в соответствии с вашим
$content_width
значением:(Конечно, вы бы хотели, чтобы в этом случае, в зависимости от ситуации, проводились некоторые отказоустойчивые / проверки ошибок).
Удалить опцию для вставки полноразмерных изображений
Если вы просто хотите запретить пользователям вставлять полноразмерные изображения (опять: будьте осторожны; это может быть территория плагина), вы можете отфильтровать
'image_size_names_choose'
:Опять же: вы можете захотеть добавить некоторые нормальные сбои здесь, так как этот фильтр используется более чем в одном месте.
Определите пользовательский размер изображения для изображений полной ширины
Относительно предыдущего варианта, вы можете определить
'full-post-width'
размер изображения:Затем добавьте его в список доступных опций:
источник
get_option
значений. Остальное похоже на суть, которую я использую gist.github.com/wycks/4949242, которая была указана в моей ссылке. Также кажется, что это серая область, как сделать это на самом деле, если тема изменилась.$content_width
или не устанавливая его, он все еще применяется по умолчанию к встроенным объектам, я думаю.image_size_names_choose
фильтр до сих пор! Я был тем, что заменял все это поле, чтобы теперь получать свои нестандартные размеры. Это новое в 3.5 Chip?add_image_size
многоязычными, а затем я подумал, что было бы также хорошо использовать для этой проблемы размера изображения. Если вам не нужна локализация, вы можете просто поместить ее в массив вместо жесткого кодирования.Да, я так думаю. Чтобы обойти
$content_width
проблему с темами, представленными в репозитории, я использую опции фильтров, чтобы принудительно выбрать размеры, выбранные для дизайна.источник