wp_get_attachment_image() WP 2.5.0

Отримує <img> тег зображення вказаного вкладення (прикріпленого до посту файла).

Якщо вкладення не вдалося знайти, буде повернено порожній рядок.

Якщо вкладення є картинкою, то їй буде повернуто код, відповідний зазначеному розміру (див. параметр $size).

Для прикріплених файлів типу відмінного від картинок (.zip, .xls, .flv) буде повернуто відповідна цьому типу іконка (автоматично визначається WordPress). За замовчуванням така іконка не виводиться, щоб вона виводилася, потрібно виставити 3-й параметр ($icon) в true.

Працює на основі:
wp_get_attachment_image_src()
Основа для:
get_the_post_thumbnail()

Повертає

Строку. HTML код зображення в <img> тега.

Використання

$img = wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
$attachment_id
(число) (обов’язковий)
ID вкладення, картинку якого потрібно отримати.
$size
(рядок/масив)

Розмір картинки. Можна вказати у вигляді:

  • Рядки thumbnail, medium, large, fullабо назва наявного розміру
  • Як масиву з 2-х елементів, визначальних розміри сторін виводиться картинки: array(32,32).

Вказівка ​​розмірів через масив не зменшує картинку фізично, вона зменшується тільки візуально з готової мініатюри (uploads).

Вказівка ​​розмірів не впливає на розміри іконок, що виводяться для файлів, вони завжди виводяться в оригінальному розмірі (32х32).

Замість використання масиву іноді логічно зареєструвати новий розмір картинок ( add_image_size() ) і використовувати його поряд з уже встановленими ( thumbnail, medium, largeабо full). Такий підхід ефективніший, оскільки немає потреби постійно перевіряти який розмір із наявних підходив краще.

Типово: “thumbnail”

$icon
(логічний)
Використовувати медіа іконки, щоб подати вкладення. За замовчуванням, для вкладень типу файл (не картинок), іконка не виводиться, якщо потрібно виводити іконки для таких типів вкладень виставте цей параметр в true.


Типово: false
$attr
(масив)

Будь-які атрибути для тега <img> у масиві. Наприклад:

array( 'class' => 'foo bar', 'title' => 'назва картинки', 'alt' => 'alt картинки', 'srcset' => '', 'sizes' => '', )

alt за замовчуванням береться з даних вкладення:

'alt' => trim( strip_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) )

Приклади

0

#1 Виведемо готову для HTML картинку

Виведемо картинку <img> середнього розміру прикріпленого файлу-картинки 651:

<?php echo wp_get_attachment_image(651, 'medium'); ?>

Виведе приблизно такий HTML:

<img width="250" height="250" src="http://example.com/image-250x250.png" class="attachment-medium size-medium" alt="Текст із поля Alt Text" />

alt текст буде заповнено, тільки якщо він вказаний для вкладення у спеціальному полі (alt text). В alt не потрапляє текст із заголовка (title), опису (description) або підпису (caption) картинки.

0

#2 Приклад із зазначенням довільного розміру

Виведемо картинку вказаного розміру 20х20 пікселів, для вкладень типу “картинка” та відповідну іконку для інших типів вкладень (3-й параметр):

<?php echo wp_get_attachment_image( $post->ID, array(20,20), true); ?>

$post->ID– динамічна передача ID усередині циклу. Створити такий цикл можна за допомогою функції get_posts() ( get_posts('post_type=attachment')).

0

#3 Вкажемо атрибути alt і title для зображення

$params = [ 'alt' => 'alt картинки', 'title' => 'назва картинки' ] $tag = wp_get_attachment_image( 15108, 'medium', false, $params);

Отримаємо:

<img width="588" height="216" src="https://wp-doc.com/wp-content/uploads/2022/09/clipboard-image-122190.png" class="attachment-medium size-medium" alt="alt картинки" loading="lazy" title="назва картинки" />

список змін

З версії 2.5.0Введено.
З версії 4.4.0$srcset and $ sizes attributes були added.
З версії 5.5.0$loading attribute був added.

Код wp_get_attachment_image() WP 6.0.2

function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = false, $attr = '' ) { $html = ''; $image = wp_get_attachment_image_src($attachment_id, $size, $icon); if ($image) { list($src, $width, $height) = $image; $ Attachment = get_post ($ Attachment_id); $ hwstring = image_hwstring ($ width, $ height); $size_class = $size; if ( is_array( $size_class ) ) { $size_class = implode( 'x', $size_class ); } $default_attr = array( 'src' => $src, 'class' => "attachment-$size_class size-$size_class", 'alt' => trim( strip_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) ), ); // Add `loading` attribute. if ( wp_lazy_loading_enabled( 'img', 'wp_get_attachment_image' ) ) { $default_attr['loading'] = wp_get_loading_attr_default( 'wp_get_attachment_image' ); } $ attr = wp_parse_args ($ attr, $ default_attr); // If the default value of `lazy` for the `loading` attribute is overridden // для того, щоб розмістити його для цього зображення, не може бути включений. if ( array_key_exists( 'loading', $attr ) && ! $attr['loading'] ) { unset($attr['loading']); } // Generate 'srcset' and 'sizes' if not already present. if ( empty( $attr['srcset'] ) ) { $image_meta = wp_get_attachment_metadata( $attachment_id ); if ( is_array( $image_meta ) ) { $ size_array = array (absint ($ width), absint ($ height)); $srcset = wp_calculate_image_srcset( $size_array, $src, $image_meta, $attachment_id ); $ sizes = wp_calculate_image_sizes ($ size_array, $ src, $ image_meta, $ attachment_id); if ( $srcset && ( $sizes || ! empty( $attr['sizes'] ) ) ) { $attr['srcset'] = $srcset; if ( empty( $attr['sizes'] ) ) { $attr['sizes'] = $sizes; } } } } /** * Filters List of attachment image attributes. * * @ Since 2.8.0 * * @param string[] $attr Array of attribute values ​​for image markup, keyed by attribute name. * See wp_get_attachment_image(). * @param WP_Post $attachment Image attachment post. * @param string|int[] $size Requested image size. Can be any registered image size name, or * an array of width and height values ​​in pixels (in that order). */ $attr = apply_filters( 'wp_get_attachment_image_attributes', $attr, $attachment, $size); $ attr = array_map ( 'esc_attr', $ attr); $html = rtrim("<img $hwstring"); foreach ( $attr as $name => $value ) { $html .= "$name=" . '"' . $value . '"'; } $html. = '/>'; } /** * HTML img element representing an image attachment. * * @ Since 5.6.0 * * @param string $html HTML img element або empty string on failure. * @param int $attachment_id Image attachment ID. * @param string|int[] $size Requested image size. Can be any registered image size name, or * an array of width and height values ​​in pixels (in that order). * @param bool $icon Whether the image should be treated as an icon. * @param string[] $attr Array of attribute values ​​for image markup, keyed by attribute name. * See wp_get_attachment_image(). */ return apply_filters( 'wp_get_attachment_image', $html, $attachment_id, $size, $icon, $attr ); }