wp_get_original_image_path()WP 5.3.0

Получает путь оригинальной картинки (не её уменьшенной копии) по указанному ID вложения.

Эта функция похожа на get_attached_file(), однако некоторые изображения могут быть обработаны после загрузки. Например при загрузке очень больших фото, подробнее см. ниже. В этом случае прикрепленный «full (полный)» размер файла обычно заменяется обработанной версией исходного изображения. Эта функция возвращает путь к первоначально загруженному файлу.

Используйте wp_get_original_image_url(), когда нужно получить URL, а не путь оригинальной картинки.

Использовать эту функцию имеет смысл, только когда была загружена очень большая картинка - более 2560px в ширину или высоту.

Если картинка была загружена в WordPress 5.2 или ниже, или картинка имеет размеры по высоте и ширине меньше, чем указано в фильтре big_image_size_threshold (по умолчанию 2560), то эта функция будет работать точно также, как и функция get_attached_file(), то есть будет при обрезке изображения возвращать путь к обрезанной версии, а не к оригиналу.

Так происходит, когда у картинки размеры меньше чем указанны в фильтре big_image_size_threshold (по умолчанию 2560). В этом случае, при загрузке картинки не сработает функция _wp_image_meta_replace_original(), которая добавляет параметр original_image в метаданные (в этом параметре хранится оригинальный путь к картинке), именно этим параметром пользуется описываемая функция wp_get_original_image_path().

Подробнее, читайте в отдельной заметке.

Функция проверят, что указанное вложение является именно картинкой, иначе вернет false. Такая проверка делает код более стабильным.

1 раз — 0.0014172 сек (очень медленно) | 50000 раз — 1.04 сек (быстро)
Хуки из функции

Возвращает

Строку|false. Путь к исходному файлу изображения или false, если вложение не является изображением или указанного вложения нет.

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

wp_get_original_image_path( $attachment_id );
$attachment_id(число) (обязательный)
ID вложения (изображения).

Примеры

0

#1 Выведем на экран путь к картинке

$attach_path = wp_get_original_image_path( 516 );

if ( $attach_path ) {
	echo $attach_path;
}
else {
	echo 'Этот файл не является изображением или указанного изображения нет';
}

Список изменений

С версии 5.3.0 Введена.
С версии 5.4.0 Added the $unfiltered parameter.

Код wp_get_original_image_path() WP 6.7.1

function wp_get_original_image_path( $attachment_id, $unfiltered = false ) {
	if ( ! wp_attachment_is_image( $attachment_id ) ) {
		return false;
	}

	$image_meta = wp_get_attachment_metadata( $attachment_id );
	$image_file = get_attached_file( $attachment_id, $unfiltered );

	if ( empty( $image_meta['original_image'] ) ) {
		$original_image = $image_file;
	} else {
		$original_image = path_join( dirname( $image_file ), $image_meta['original_image'] );
	}

	/**
	 * Filters the path to the original image.
	 *
	 * @since 5.3.0
	 *
	 * @param string $original_image Path to original image file.
	 * @param int    $attachment_id  Attachment ID.
	 */
	return apply_filters( 'wp_get_original_image_path', $original_image, $attachment_id );
}