Функция wp_get_original_image_url()
в WordPress используется для получения URL исходного изображения, которое было загружено на сайт. Это особенно полезно, когда загружается большое изображение, и WordPress автоматически создает его уменьшенные копии для оптимизации. В таком случае стандартная функция wp_get_attachment_url()
может возвращать URL уменьшенной версии, в то время как wp_get_original_image_url()
всегда вернет URL исходного файла.
wp_get_original_image_url( int $attachment_id ): string|false
Описание параметра
- $attachment_id (int): Обязательный параметр. ID вложения, для которого нужно получить URL оригинального изображения.
Возвращаемое значение
Функция возвращает:
- URL оригинального изображения (string), если вложение является картинкой.
- false, если вложение не является изображением или если указанное вложение не существует.
Пример 1: Получение URL оригинального изображения
Допустим, мы загрузили изображение с разрешением 8000×6000 пикселей. WordPress автоматически создал уменьшенную копию для отображения на сайте, и стандартная функция wp_get_attachment_url()
возвращает ссылку на уменьшенную версию изображения (например, 2056×1650 пикселей). Однако нам нужен URL оригинального файла. Вот как это можно сделать:
<?php
// ID загруженного изображения.
$attach_id = 123;
// Получаем URL уменьшенной копии изображения.
$thumbnail_url = wp_get_attachment_url( $attach_id );
echo $thumbnail_url;
// Вывод: http://example.com/wp-content/uploads/2024/10/large-image-scaled.jpeg
// Получаем URL оригинального изображения.
$original_url = wp_get_original_image_url( $attach_id );
echo $original_url;
// Вывод: http://example.com/wp-content/uploads/2024/10/large-image.jpeg
?>
В этом примере мы видим, что wp_get_attachment_url()
возвращает уменьшенную версию изображения, в то время как wp_get_original_image_url()
возвращает URL исходного файла.
Пример 2: Проверка, является ли вложение изображением
Перед тем как запрашивать URL оригинального изображения, мы можем проверить, является ли вложение картинкой:
<?php
// ID вложения.
$attach_id = 350;
// Проверяем, является ли вложение изображением.
if ( wp_attachment_is_image( $attach_id ) ) {
// Получаем URL оригинального изображения.
$original_url = wp_get_original_image_url( $attach_id );
if ( $original_url ) {
echo 'URL оригинального изображения: ' . $original_url;
} else {
echo 'Не удалось получить URL оригинального изображения.';
}
} else {
echo 'Вложение не является изображением.';
}
?>
В этом примере мы сначала проверяем, является ли вложение изображением с помощью функции wp_attachment_is_image()
, прежде чем получить его URL с помощью wp_get_original_image_url()
.
Пример 3: Обработка ошибок при получении URL
Иногда может возникнуть ошибка, если вложение не является изображением или указанный ID не существует. В этом примере мы обработаем возможные ошибки:
<?php
// ID вложения.
$attach_id = 500;
// Пытаемся получить URL оригинального изображения.
$original_url = wp_get_original_image_url( $attach_id );
if ( $original_url === false ) {
echo 'Ошибка: Вложение не является изображением или такого вложения не существует.';
} else {
echo 'URL оригинального изображения: ' . $original_url;
}
?>
Здесь мы обрабатываем ошибку, если функция вернула false
, указывая на то, что вложение либо не является изображением, либо его нет в базе данных.
Заключение
Функция wp_get_original_image_url()
является отличным инструментом для получения URL оригинальных изображений в WordPress. Это полезно в случаях, когда нужно работать с исходным файлом изображения, а не с его оптимизированными копиями, которые создаются автоматически при загрузке больших изображений.