Получение Разрешённых MIME-Типов в WordPress

Получение Разрешённых MIME-Типов в WordPress

Функция get_allowed_mime_types() позволяет получить список разрешённых MIME-типов и расширений файлов, которые могут быть загружены в WordPress.

Использование функции

Функция get_allowed_mime_types() используется в других частях WordPress, например, в функции wp_check_filetype_and_ext().

Время выполнения

  • 1 раз: ~0.000001 сек (очень быстро)
  • 50000 раз: ~0.89 сек

Аргументы

  • $user (int|WP_User) — пользователь, для которого выполняется проверка.
    • По умолчанию: текущий пользователь

Пример вызова функции

$mimes = get_allowed_mime_types();

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

Пример 1: Получение ссылки на иконку файла по его типу

Создадим функцию, которая будет возвращать ссылку на иконку файла в зависимости от его расширения. Для этого мы используем функцию wp_mime_type_icon($mime).

function get_icon_by_file_extension($file_ext) {
    $mimes = get_allowed_mime_types();

    foreach ($mimes as $type => $mime) {
        if (strpos($type, $file_ext) !== false) {
            return wp_mime_type_icon($mime);
        }
    }
}

echo '';

Этот код выведет на экран изображение иконки для файлов формата MP4.

Пример 2: Массив разрешённых файлов и их MIME-типов

Вот пример массива, который возвращает функция wp_get_mime_types():

array(
    // Форматы изображений
    'jpg|jpeg|jpe' => 'image/jpeg',
    'gif' => 'image/gif',
    'png' => 'image/png',
    'bmp' => 'image/bmp',
    'tif|tiff' => 'image/tiff',
    'ico' => 'image/x-icon',

    // Форматы видео
    'mp4|m4v' => 'video/mp4',
    'avi' => 'video/avi',
    // ... другие форматы
)

Обратные вызовы из функции

На функцию get_allowed_mime_types() влияет хук upload_mimes, который может изменить список разрешённых MIME-типов перед его возвращением.

Код функции

Вот как выглядит основной код функции get_allowed_mime_types():

function get_allowed_mime_types($user = null) {
    $t = wp_get_mime_types();

    unset($t['swf'], $t['exe']);
    if (function_exists('current_user_can')) {
        $unfiltered = $user ? user_can($user, 'unfiltered_html') : current_user_can('unfiltered_html');
    }

    if (empty($unfiltered)) {
        unset($t['htm|html'], $t['js']);
    }

    return apply_filters('upload_mimes', $t, $user);
}

Заключение

Функция get_allowed_mime_types() полезна для получения списка поддерживаемых типов файлов в WordPress. С её помощью вы можете легко управлять загружаемыми файлами и добавлять собственные типы, если это необходимо.

Leave a Reply

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