Функция WP_GET_ATTACHMENT_IMAGE_SRC()
Функция wp_get_attachment_image_src() позволяет получить массив данных для указанного изображения: URL, ширина и высота вложения (attachment image).
Примечание: Первый элемент массива используется для свойства src.
Если вам нужно просто получить URL вложения, используйте функцию wp_get_attachment_image_url().
Использование функции
Синтаксис
Функция вызывается следующим образом:
wp_get_attachment_image_src( $attachment_id, $size, $icon );
Параметры
-
$attachment_id (число) — обязательный. ID изображения, данные которого нужно получить.
-
$size (строка/массив) — размер изображения, данные которого вы хотите получить. Вы можете указать размер из стандартных размеров WordPress, таких как thumbnail, medium, large, full, или любой другой зарегистрированный размер. Также можно указать размер в виде массива из двух элементов (ширина, высота), например:
array(32, 32). В этом случае будет выбран наиболее подходящий размер, и изображение будет уменьшено или растянуто до заданного размера.По умолчанию:
'thumbnail' -
$icon (логическое) — если установлено в
true(1), то для не изображений будет показан медиа-значок (например, для файлов .zip, .rar и др.)По умолчанию:
false
Возврат значения
Функция возвращает массив или false. Массив будет содержать следующие данные:
[0]=> URL изображения[1]=> ширина изображения[2]=> высота изображения[3]=> является ли изображение промежуточным
Примеры использования
Простой пример
Давайте выведем HTML-код изображения вложения с ID=8:

Изменение директории значков
В WordPress для показа изображений прикрепленных файлов (не картинок) используются специальные значки. Параметр $icon отвечает за это. Для изображений прикреплений будет показано само изображение, а для других файлов — иконка в зависимости от их типа. Например, для файла .mp3 будет показан значок audio.jpg из папки wp-includes/images/crystal/.
В этом примере мы изменим директорию, откуда будут загружаться медиа-значки. Давайте поменяем стандартную директорию на папку темы: wp-content/themes/yourtheme/images (в этой папке должны находиться изображения для различных типов файлов).
add_filter( 'icon_dir', 'my_theme_icon_directory' );
function my_theme_icon_directory( $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_get_attachment_image_src() была добавлена в версии 2.5.0.
Код функции
Функция определена в файле wp-includes/media.php:
function wp_get_attachment_image_src( $attachment_id, $size = 'thumbnail', $icon = false ) {
$image = image_downsize( $attachment_id, $size );
if ( ! $image ) {
$src = false;
if ( $icon ) {
$src = wp_mime_type_icon( $attachment_id, '.svg' );
if ( $src ) {
$icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' );
$src_file = $icon_dir . '/' . wp_basename( $src );
list( $width, $height ) = wp_getimagesize( $src_file );
$ext = strtolower( substr( $src_file, -4 ) );
if ( '.svg' === $ext ) {
$width = 48;
$height = 64;
} else {
list( $width, $height ) = wp_getimagesize( $src_file );
}
}
}
if ( $src && $width && $height ) {
$image = array( $src, $width, $height, false );
}
}
return apply_filters( 'wp_get_attachment_image_src', $image, $attachment_id, $size, $icon );
}
Теперь вы понимаете, как использовать функцию wp_get_attachment_image_src() для получения данных изображений в WordPress. Если у вас возникнут дополнительные вопросы или вам нужна помощь, не стесняйтесь спрашивать!