Функция wp_get_attachment_image_src() – возвращает массив данных о медиафайле (картинке, миниатюре, изображению) wordpress:
В первом элементе массива хранится прямая ссылка на медиафайл, в том числе ссылка на миниатюру wordpress.
Основная задача этой функции - получение прямых ссылок на медиафайлы WP в переменную PHP для использования в любом месте макета.
Преимуществом такого подхода к получению медиа является отсутствие мусорного хтмл кода, ведь вы всегда можете настроить вывод под себя.
wp_get_attachment_image_src( $attachment_id, $size, $icon )
Параметр | Тип данных | Описание |
$attachment_id | число | идентификатор (Ид) изображения |
$size | строка / массив |
размер картинки, который нам нужен. Можно указывать зарезервированные строки:
или же указать данные в виде числового массива, например array(200,200) |
$icon | true / false | Если получаем вложение, отличное от изображения можно выводить иконку файла. Для этого нужно установить значение true. По умолчанию false. |
В результате своей работы, функция wp_get_attachment_image_src возвращает массив из 3 эллементов:
[0]=>"прямая ссылка на изображение нужного размера"
[1]=>"ширина изображения"
[2]=>"высота изображения"
Работать с функцией довольно просто, достаточно сделать правильный запрос. Например, выведем медиафайл с идентификатором 10:
<?php
$image=wp_get_attachment_image_src( 10, 'full');
echo $image[0];
?>
Если вам нужно в посте получить идентификатор миниатюры и вывести прямую ссылку, вы можете сделать это приблизительно вот так:
<?php
if ( has_post_thumbnail()){
$image=wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail');
echo $image[0];
}
?>
Функция has_post_thumbnail проверяет наличие миниатюры. Если она есть мы получаем идентификатор миниатюры функцией get_post_thumbnail_id и выводим ссылку на миниатюру в любом месте нашего шаблона.
Более подробное использование этой функции можно посмотреть в посте: миниатюра wordpress.
Привет. Я правильно понимаю, функция wp_get_attachment_image_src не делает обрезку фоток, она просто выбирает нужный размер?
Просто остро стал вопрос нагрузки, пытаюсь снизить, выбрасываю не самые нужные функции в теме. Вот дошла очередь до миниатюр 🙂