Как использовать функцию wp_attachment_is() для проверки типа вложения

## WP_ATTACHMENT_IS() │ WP 4.2.0

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

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

Эта функция используется, когда вы хотите узнать, относится ли файл к одной из категорий. Например, вы можете использовать её для проверки, является ли файл изображением.

### Возвращаемое значение

Функция возвращает true, если файл соответствует ожидаемому типу (например, изображение), и false в противном случае.

### Аргументы функции

- $type (string) (обязательный) — тип вложения. Принимает значения: image, audio, video или расширение файла.
- $post (int|WP_Post) (необязательный) — ID вложения или объект поста. По умолчанию используется глобальная переменная $post.

### Пример использования

Предположим, у нас есть файл, прикреплённый к посту, и мы знаем его ID — 54. Теперь нам нужно проверить, является ли это изображением:

```php
if (wp_attachment_is('image', 54)) {
    // Это изображение
} else {
    // Это не изображение
}

Также для этой проверки можно использовать функцию wp_attachment_is_image().

Код функции

Вот как выглядит сама функция в коде:


function wp_attachment_is($type, $post = null) {
$post = get_post($post);

if (!$post) {
    return false;
}

$file = get_attached_file($post->ID);

if (!$file) {
    return false;
}

if (str_starts_with($post->post_mime_type, $type . '/')) {
    return true;
}

$check = wp_check_filetype($file);

if (empty($check['ext'])) {
    return false;
}

$ext = $check['ext'];

if ('import' !== $post->post_mime_type) {
    return $type === $ext;
}

switch ($type) {
    case 'image':
        $image_exts = array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'webp', 'avif', 'heic');
        return in_array($ext, $image_exts, true);

    case 'audio':
        return in_array($ext, wp_get_audio_extensions(), true);

    case 'video':
        return in_array($ext, wp_get_video_extensions(), true);

    default:
        return $type === $ext;
}

}

Изменения

Функция была представлена в версии 4.2.0.

Связанные функции

  • get_attached_file() — Получить прикреплённый файл.
  • wp_get_audio_extensions() — Получить список поддерживаемых аудио расширений.
  • wp_get_video_extensions() — Получить список поддерживаемых видео расширений.

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

Leave a Reply

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