wp_get_attachment_image_src() WP 2.5.0

Отримує масив даних вказаного зображення: URL, ширина, висота зображення-вкладення.

Примітка: використовуйте перший (нульовий) елемент масиву для атрибута src.

Використовуйте wp_get_attachment_image_url() , коли потрібно отримати готову URL-адресу.

Працює на основі:
image_downsize()

Хуки з функції
[0] => url [1] => width [2] => height [3] => is_intermediate

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

$ src = wp_get_attachment_image_src ($attachment_id, $ size, $ icon);
$attachment_id
(число) (обов’язковий)
ID вкладення-картинки, дані якої потрібно отримати.
$size
(рядок/масив)

Розмір картинки, дані про яку потрібно отримати. У цьому параметрі можна вказувати передбачені WordPress розміри ( thumbnail, medium, largeабо full).

Також можна вказати розмір у масиві як двох елементів (ширина, висота): array(32,32). У цьому випадку буде підібрано найбільш відповідний розмір з наявних, потім картинка буде стиснута/розтягнута до вказаних розмірів. З версії 2.5. цей параметр не впливає на розмір медіа іконок (іконок для файлів), вони завжди відображаються в оригінальному розмірі.

За замовчуванням: ‘thumbnail’

$icon
(логічний)
Ставимо в true (1), щоб показувати медіа-іконки для вкладень не картинок (.zip, .rar і ​​т.д.)


За замовчуванням: false

Приклади

0

#1 Використання за замовчуванням

Виведемо html код картинки вкладення з ID = 8:

<?php
$attachment_id = 8; // ID вкладення

$image_attributes = wp_get_attachment_image_src($attachment_id);
// повернувся масив array
?>

<img src="<?php echo $image_attributes[0] ?>" width="<?php echo $image_attributes[1] ?>" height="<?php echo $image_attributes[2] ?>">
0

#2 Зміна директорії іконок

У WordPress для показу картинок вкладених файлів (не картинок) використовуються спеціальні іконки. За такий показ відповідає параметр $iconцієї функції. Так, для вкладень картинок виводиться мініатюра, а інших файлів виводиться відповідна його типу ікона. Наприклад, для .mp3 файлу буде показано зображення audio.jpg з папки: wp-includes/images/crystal/).

Цей приклад показує, як можна змінити розділ, звідки будуть братися такі медіа-іконки. Змінимо каталог за промовчанням на папку теми: wp-content/themes/yourtheme/images(зрозуміло в цю папку потрібно розмістити картинки для різних типів файлів).

add_filter('icon_dir', 'my_theme_icon_dyrectory');
   function my_theme_icon_dyrectory($icon_dir) {
   return TEMPLATEPATH. '/images';
}
add_filter('icon_dir_uri', 'my_theme_icon_uri');
   function my_theme_icon_uri($icon_dir) {
   return get_bloginfo('stylesheet_directory').'/images';
}

Розміщувати цей код треба у файл теми functions.php

список змін

З версії 2.5.0Введено.

Код wp_get_attachment_image_src() WP 6.0.2

function wp_get_attachment_image_src( $attachment_id, $size = 'thumbnail', $icon = false ) {
	// Get a thumbnail or intermediate image if there is one.
	$ image = image_downsize ($ attachment_id, $ size);
	if ( ! $image ) {
		$ src = false;

		if ($icon) {
			$src = wp_mime_type_icon( $attachment_id );

			if ($ src) {
				/** Цей filter is documented в wp-includes/post.php */
				$icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' );

				$src_file = $icon_dir. '/'. wp_basename($ src);
				list($width, $height) = wp_getimagesize($src_file);
			}
		}

		if ( $src && $width && $height ) {
			$ image = array ($ src, $ width, $ height, false);
		}
	}
	/**
	 * Filters attachment image source result.
	 *
	 * @ Since 4.3.0
	 *
	 * @param array|false $image {
	 * Array of image data, або boolean false if no image is available.
	 *
	 * @type string $0 Image source URL.
	 * @type int $1 Image width in pixels.
	 * @type int $2 Image height in pixels.
	 * @type bool $3 Whether the image is a resized image.
	 * }
	 * @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.
	 */
	return apply_filters( 'wp_get_attachment_image_src', $image, $attachment_id, $size, $icon );
}