Получить URL оригинального изображения с помощью wp_get_original_image_url()

# WP_GET_ORIGINAL_IMAGE_URL() │ WP 5.3.0

Функция wp_get_original_image_url() используется для получения URL оригинального изображения, загруженного в медиабиблиотеку WordPress. Когда вы загружаете изображения, они могут быть обработаны (например, уменьшены в размере), и эта функция позволяет получить ссылку на файл изображения в его оригинальном качестве.

## О функции

Эта функция работает похоже на wp_get_attachment_url(), но может вернуть оригинальное изображение, если оно было изменено после загрузки.

### Возврат

Функция возвращает **строку** с URL оригинального изображения или **false** в случае ошибки, если вкладка не является изображением.

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

```php
wp_get_original_image_url( $attachment_id );
  • $attachment_id (int) (обязательный) — ID поста вложения, который вы хотите использовать.

Примеры

Пример 1: Получение оригинального размера изображения

Предположим, мы загрузили большое изображение размером 8000x6000 пикселей на сайт. Когда мы пытаемся получить URL этого изображения, мы можем получить ссылку на уменьшенное изображение (например, 2056x1650 пикселей), а иногда нам нужно именно оригинальное изображение. Для этого используем нашу функцию:

$attach_id = 200;

wp_get_attachment_url( $attach_id );
// Возвращает: http://example.com/wp-content/uploads/2020/03/jpg-big-image-scaled.jpeg

wp_get_original_image_url( $attach_id ); 
// Возвращает: http://example.com/wp-content/uploads/2020/03/jpg-big-image.jpeg

Описание работы функции

Функция wp_get_original_image_url() проверяет, является ли ID вложения изображением. Если это так, она:

  1. Получает URL изображения через wp_get_attachment_url().
  2. Извлекает метаданные изображения.
  3. Если оригинальное изображение существует, возвращает его URL. В противном случае возвращает стандартный URL.

Код функции

function wp_get_original_image_url( $attachment_id ) {
    if ( ! wp_attachment_is_image( $attachment_id ) ) {
        return false; // Не является изображением
    }

    $image_url = wp_get_attachment_url( $attachment_id );

    if ( ! $image_url ) {
        return false; // Если URL не найден
    }

    $image_meta = wp_get_attachment_metadata( $attachment_id );

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

    /**
     * Фильтрует URL оригинального изображения.
     *
     * @param string $original_image_url URL оригинального изображения.
     * @param int    $attachment_id      ID вложения.
     */
    return apply_filters( 'wp_get_original_image_url', $original_image_url, $attachment_id );
}

Похожие функции

  • Работа с миниатюрами изображений:

    • add_image_size()
    • get_the_post_thumbnail()
    • wp_get_attachment_image_url()
  • Работа с вложениями:

    • get_attached_file()
    • wp_get_attachment_url()

Эти функции помогут вам более эффективно работать с изображениями и медиавложениями в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *