В чем разница между set_post_thumbnail_size и add_image_size? Является ли set_post_thumbnail_size для всех изображений и add_image_size для индивидуального определения размера изображений?
Спасибо.
источник
В чем разница между set_post_thumbnail_size и add_image_size? Является ли set_post_thumbnail_size для всех изображений и add_image_size для индивидуального определения размера изображений?
Спасибо.
Когда изображение загружается в WordPress, оно сохраняется в исходном размере, а также в виде нескольких копий с измененным размером в разных размерах. Таким образом, становится легко использовать разные размеры одного и того же изображения для разных целей.
По умолчанию WordPress создает 3 копии в 3 разных размерах:
'thumb'
'medium'
'large'
Размер в пикселях для этих 3-х размеров можно установить на панели инструментов WordPress, под меню Settings -> Media
.
Теперь функция add_image_size
используется для регистрации нового размера, который добавляет 3 значения по умолчанию.
Каждый размер зарегистрированный можно получить , используя его имя, в некоторой функции WordPress, например wp_get_attachment_image_src
, wp_get_attachment_image
, wp_get_attachment_link
.
Все эти функции принимают параметр, $size
который должен быть именем одного из зарегистрированных размеров (один из 3 стандартов или один из пользовательских размеров, зарегистрированных с add_image_size
).
Если 'full'
в качестве $size
аргумента используется исходное изображение, оно не изменяется.
В дополнение к функциям, упомянутым выше, есть две другие функции, которые используют размеры изображения: get_the_post_thumbnail
и the_post_thumbnail
.
Эти две функции получают (первое) и выводят (второе) изображение, которое установлено как «Featured Image» для сообщения.
Эти функции возвращают (или отражают) эти img
теги в виде полного HTML-кода, что-то вроде
<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />
Итак, какой размер используется?
Если a $size
передается как второй аргумент (1st is $postid
), то эти функции возвращают изображение с таким размером. В противном случае эти функции поиска для размера изображения , зарегистрированный с именем: post-thumbnail
.
Это не один из трех стандартных размеров, на самом деле это 4-й стандартный размер (считается 5-й full
), и вы можете зарегистрировать его при вызове set_post_thumbnail_size
.
Так
set_post_thumbnail_size( $width, $height, $crop );
это ярлык для
add_image_size( 'post-thumbnail', $width, $height, $crop );
Если вы не вызвали set_post_thumbnail_size
(что означает, что размер 'post-thumbnail'
не создан), WordPress будет использовать размер thumb
, а если даже этот размер недоступен, WordPress будет использовать исходное изображение, которое не было изменено.
Регистрация пользовательских размеров изображений может быть очень полезна при разработке темы, но важно не злоупотреблять: каждое загруженное изображение копируется и изменяется в размере для всех зарегистрированных размеров, поэтому регистрация большого количества размеров значительно замедлит процесс загрузки изображения.
Записка:
Имейте в виду, что когда WordPress создает масштабированные копии изображения, он никогда не увеличивает его, а только создает меньшие копии: например, если исходное изображение имеет размер 400x500 пикселей, а средний размер изображения составляет 800x600 пикселей, средний размер и больше не создаются.
Таким образом, регистрация размера изображения никогда не дает гарантии, что файл изображения для каждого зарегистрированного размера фактически существует в папке содержимого WordPress. Даже потому, что зарегистрированные размеры изображений легко меняются: изменение настроек, переключение тем и т. Д.
Когда размер изображения изменяется по любой причине, это изменение влияет на изображения, загруженные после этого изменения; загруженные ранее изображения не меняют размеры и не масштабируются и не сохраняются.
Если нужно полагаться на определенные размеры изображений после того, как некоторые изображения уже загружены (например, после смены тем), тогда плагин Regenerate Thumbnails станет спасением жизни.
set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized.
... это неправильно. По моему опыту тестирования, еслиset_post_thumbnail_size()
не было вызвано, WP возвращается к полноразмерному изображению.Из Кодекса:
set_post_thumbnail_size
add_image_size
источник