Функция wp_get_original_image_path()
в WordPress используется для получения пути к исходному файлу изображения, загруженному на сайт. Она полезна в тех случаях, когда после загрузки изображение было автоматически обработано и заменено уменьшенной версией для улучшения производительности, но вам требуется оригинал.
wp_get_original_image_path( int $attachment_id, bool $unfiltered = false ): string|false
Описание параметров
- $attachment_id (int): Обязательный параметр. ID вложения, для которого нужно получить путь к исходному изображению.
- $unfiltered (bool): Опциональный параметр. По умолчанию
false
, передается в функциюget_attached_file()
. Если установлено вtrue
, возвращает файл без учета фильтров.
Возвращаемое значение
- Строка (string): Путь к исходному файлу изображения.
- false: Возвращается, если вложение не является изображением или указанное вложение не существует.
Как работает функция
Функция работает аналогично get_attached_file()
, но отличается тем, что всегда возвращает путь именно к оригинальному изображению, даже если загруженное изображение было масштабировано WordPress для оптимизации работы сайта. Например, при загрузке изображений, превышающих по размеру 2560 пикселей (ширина или высота), WordPress создает уменьшенные версии. В таких случаях wp_get_original_image_path()
возвращает путь к исходному изображению, а не к его уменьшенной копии.
Пример 1: Получение пути к оригинальному изображению
Предположим, что мы загрузили изображение с разрешением 6000×4000 пикселей, и WordPress создал уменьшенную копию этого изображения для отображения на сайте. Нам необходимо получить путь к оригинальному файлу изображения:
<?php
// ID загруженного изображения.
$attach_id = 516;
// Получаем путь к оригинальному файлу изображения.
$original_path = wp_get_original_image_path( $attach_id );
if ( $original_path ) {
echo 'Путь к оригинальному изображению: ' . $original_path;
} else {
echo 'Вложение не является изображением или указанного изображения не существует.';
}
?>
В данном примере, если вложение является изображением, мы выводим путь к оригинальному файлу. Если функция возвращает false
, это означает, что файл либо не является изображением, либо его нет в базе данных.
Пример 2: Обработка ошибки при получении пути
Чтобы сделать код более устойчивым, можно добавить проверку на наличие вложения и убедиться, что оно является изображением:
<?php
// ID вложения.
$attach_id = 750;
// Проверяем, является ли вложение изображением.
if ( wp_attachment_is_image( $attach_id ) ) {
// Получаем путь к оригинальному изображению.
$original_image_path = wp_get_original_image_path( $attach_id );
if ( $original_image_path ) {
echo 'Путь к оригинальному изображению: ' . $original_image_path;
} else {
echo 'Не удалось получить путь к оригинальному изображению.';
}
} else {
echo 'Указанное вложение не является изображением.';
}
?>
Здесь мы сначала проверяем, является ли вложение изображением, а затем пытаемся получить путь к оригиналу. Если функция возвращает false
, выводится сообщение об ошибке.
Пример 3: Получение оригинального изображения для очень большого файла
Функцию wp_get_original_image_path()
целесообразно использовать, если загружено изображение с размерами, превышающими 2560 пикселей. Например, при загрузке больших фотографий:
<?php
// ID изображения.
$attach_id = 900;
// Получаем путь к оригинальному изображению, если его размеры больше 2560px.
$original_path = wp_get_original_image_path( $attach_id );
if ( $original_path ) {
echo 'Путь к исходному изображению с высоким разрешением: ' . $original_path;
} else {
echo 'Картинка не превышает установленного порога или не является изображением.';
}
?>
тот пример показывает, как использовать функцию для получения исходного файла изображений, которые были масштабированы после загрузки.
Заключение
Функция wp_get_original_image_path()
полезна, если вам требуется доступ к оригинальному файлу изображения, особенно когда WordPress автоматически создает уменьшенные копии для оптимизации. Эта функция гарантирует, что вы получите путь именно к исходному файлу, что может быть необходимо, например, для обработки изображений с высоким разрешением или для других целей, связанных с исходным качеством изображения.
Используйте эту функцию вместе с функцией wp_get_original_image_url()
, если вам необходимо получить URL оригинального изображения, а не его путь.