wp_get_attachment_image_src

Возвращает массив данных об указанной картинке: URL, ширина, высота картинки-вложения.

Заметка: первый (нулевой) элемент массива используйте для атрибута src.

C версии 4.4 еще появилась функция wp_get_attachment_image_url() работает на основе wp_get_attachment_image_src() т.е. получает все те же параметры. Только возвращает сразу URL, а не массив.
✈ 1 раз = 0.0016с = очень медленно | 50000 раз = 45.8с = очень медленно
Хуки из функции:
icon_dir
wp_get_attachment_image_src
Возвращает

Массив содержащий следующие данные:

[0] => url
[1] => width
[2] => height

Использование

$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

Примеры

#1. Использование по умолчанию

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

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

Код из


wp-includes/media.php

WP 4.7.2

<?php
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 ) ) {
			/** This filter is documented in wp-includes/post.php */
			$icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' );

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

		if ( $src && $width && $height ) {
			$image = array( $src, $width, $height );
		}
	}
	/**
	 * Filters the image src result.
	 *
	 * @since 4.3.0
	 *
	 * @param array|false  $image         Either array with src, width & height, icon src, or false.
	 * @param int          $attachment_id Image attachment ID.
	 * @param string|array $size          Size of image. Image size or array of width and height values
	 *                                    (in that order). Default 'thumbnail'.
	 * @param bool         $icon          Whether the image should be treated as an icon. Default false.
	 */
	return apply_filters( 'wp_get_attachment_image_src', $image, $attachment_id, $size, $icon );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *