Функция wp_get_attachment_image()
используется для получения HTML-элемента <img>
, представляющего изображение-вложение. Она позволяет гибко выводить изображения разных размеров и с различными атрибутами, что делает её полезной в разработке тем и плагинов для WordPress.
wp_get_attachment_image( int $attachment_id, string|int[] $size = ‘thumbnail’, bool $icon = false, string|array $attr = ” ): string
Описание
Функция возвращает HTML-код изображения, которое прикреплено к записи в виде вложения. Если вложение не является изображением, функция может вернуть иконку, если параметр $icon
установлен в true
.
Параметры функции
$attachment_id
(int, обязательно) — ID изображения-вложения, которое необходимо вывести.$size
(string|int[], по умолчанию:'thumbnail'
, необязательно) — Размер изображения. Можно указать зарегистрированное имя размера (например,thumbnail
,medium
,large
) или массив ширины и высоты.$icon
(bool, по умолчанию:false
, необязательно) — Указывает, возвращать ли иконку для файлов, которые не являются изображениями.$attr
(string|array, необязательно) — Массив дополнительных атрибутов для элемента изображения. Примеры: классы CSS, атрибутыalt
,srcset
,sizes
,loading
, и т.д.
Возвращаемое значение
string
— HTML-код элемента изображения или пустая строка при неудаче.
Пример 1: Получение изображения с настройкой размера
В этом примере мы выводим изображение вложения с ID 123 в размере medium
(средний):
$attachment_id = 123;
echo wp_get_attachment_image( $attachment_id, 'medium' );
Функция сгенерирует HTML-код <img>
с изображением, используя средний зарегистрированный размер.
Пример 2: Использование массива для задания размеров
Вы можете задать произвольный размер изображения, передав массив ширины и высоты:
$attachment_id = 456;
echo wp_get_attachment_image( $attachment_id, array( 600, 400 ) );
Этот код выведет изображение с размером 600×400 пикселей. Однако стоит помнить, что при использовании массивов изображение не будет обрезано под эти размеры, и браузер сам изменит его размер, что может привести к искажению.
Пример 3: Использование дополнительных атрибутов
В этом примере мы добавляем дополнительные атрибуты, такие как класс CSS и атрибут alt
для SEO:
$attachment_id = 789;
echo wp_get_attachment_image( $attachment_id, 'large', false, array( 'class' => 'custom-class', 'alt' => 'Описание изображения' ) );
Результат будет включать HTML-код изображения с указанным классом и альтернативным текстом (атрибут alt
).
Пример 4: Вывод всех изображений, прикрепленных к посту
Этот код выводит все изображения, прикрепленные к конкретному посту, в виде списка:
$post_id = 25; // ID поста, к которому прикреплены изображения
$attachments = get_posts( array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => 'any',
'post_parent' => $post_id
) );
if ( $attachments ) {
echo '<ul>';
foreach ( $attachments as $attachment ) {
echo '<li>' . wp_get_attachment_image( $attachment->ID, 'thumbnail' ) . '</li>';
}
echo '</ul>';
}
Этот код найдет все вложения, связанные с постом с ID 25, и выведет их в формате миниатюр.
Пример 5: Получение изображения для параметра темы
Если вы используете настраиваемые параметры темы, можно получить изображение, загруженное через настройщик тем:
$attachment_id = get_theme_mod( 'my_custom_image_setting' );
echo wp_get_attachment_image( $attachment_id, 'full' );
Функция get_theme_mod()
получает значение настройки темы, а затем wp_get_attachment_image()
выводит изображение на основе этого значения.
Пример 6: Вывод иконки для не-изображений
Если вложение не является изображением (например, PDF или аудиофайл), вы можете отобразить иконку:
$attachment_id = 321;
echo wp_get_attachment_image( $attachment_id, 'thumbnail', true );
При установке параметра $icon
в true
, функция выведет иконку для файла вместо изображения.
Заключение
Функция wp_get_attachment_image()
в WordPress позволяет легко выводить изображения с различными параметрами и атрибутами. Она дает разработчикам гибкость в управлении выводом изображений, что особенно полезно при создании настраиваемых тем и плагинов.