Функция wp_get_ext_types()
в WordPress возвращает массив расширений файлов, сгруппированных по их типу. Это удобный способ узнать, какие форматы файлов поддерживаются WordPress для различных типов мультимедиа, таких как изображения, аудио, видео и документы. Эти расширения могут быть полезны, например, при загрузке файлов на сайт или проверке их типов.
wp_get_ext_types(): array[]
Возвращаемое значение: Возвращает многомерный массив, где каждый ключ — это тип файла, а его значение — массив соответствующих расширений.
Функция возвращает расширения для следующих категорий:
- images (изображения)
- audio (аудио)
- video (видео)
- documents (документы)
- spreadsheet (таблицы)
- interactive (интерактивные файлы)
- text (текстовые файлы)
- archive (архивы)
- code (файлы кода)
Пример возвращаемого значения для основных типов файлов:
Array
(
[image] => Array
(
[0] => jpg
[1] => jpeg
[2] => png
[3] => gif
[4] => bmp
[5] => tiff
)
=> Array
(
[0] => mp3
[1] => m4a
[2] => ogg
[3] => wav
)
=> Array
(
[0] => mp4
[1] => m4v
[2] => mov
[3] => wmv
[4] => avi
)
[documents] => Array
(
[0] => pdf
[1] => doc
[2] => docx
[3] => ppt
[4] => pptx
[5] => odt
)
[archive] => Array
(
[0] => zip
[1] => rar
[2] => tar
[3] => gz
)
[code] => Array
(
[0] => html
[1] => css
[2] => js
[3] => php
[4] => py
)
)
Пример 1: Получение списка всех поддерживаемых расширений
Этот пример выводит все поддерживаемые расширения файлов для различных категорий мультимедийных и документных файлов.
// Получаем массив поддерживаемых расширений по типам файлов
$ext_types = wp_get_ext_types();
// Выводим список типов файлов и их расширений
foreach ( $ext_types as $type => $extensions ) {
echo 'Тип файла: ' . $type . '<br>';
echo 'Расширения: ' . implode( ', ', $extensions ) . '<br><br>';
}
Вывод:
Тип файла: image
Расширения: jpg, jpeg, png, gif, bmp, tiff
Тип файла: audio
Расширения: mp3, m4a, ogg, wav
Тип файла: video
Расширения: mp4, m4v, mov, wmv, avi
Тип файла: documents
Расширения: pdf, doc, docx, ppt, pptx, odt
Тип файла: archive
Расширения: zip, rar, tar, gz
Тип файла: code
Расширения: html, css, js, php, py
Пример 2: Проверка допустимого расширения файла
В данном примере мы проверяем, поддерживает ли WordPress определенное расширение файла перед загрузкой.
// Функция для проверки, поддерживается ли расширение файла
function is_supported_file_type( $file_extension ) {
$ext_types = wp_get_ext_types();
foreach ( $ext_types as $type => $extensions ) {
if ( in_array( $file_extension, $extensions ) ) {
return true;
}
}
return false;
}
// Пример использования
$file_extension = 'pdf';
if ( is_supported_file_type( $file_extension ) ) {
echo 'Расширение ' . $file_extension . ' поддерживается!';
} else {
echo 'Расширение ' . $file_extension . ' не поддерживается.';
}
Вывод:
Расширение pdf поддерживается!
Пример 3: Добавление нового типа файла через фильтр
WordPress позволяет добавлять свои собственные расширения через фильтр ext2type
. В следующем примере мы добавляем новый тип файла для .epub
(электронных книг) в категорию документов.
// Добавляем новое расширение файла через фильтр
function custom_ext_types( $types ) {
$types['documents'][] = 'epub'; // Добавляем расширение epub в документы
return $types;
}
add_filter( 'ext2type', 'custom_ext_types' );
// Проверим результат
$ext_types = wp_get_ext_types();
print_r( $ext_types['documents'] );
Теперь в категории документов будет доступен новый формат .epub
.
Примечания
- Фильтр: Функция поддерживает фильтр
ext2type
, который можно использовать для добавления или удаления расширений файлов для различных типов. Это позволяет кастомизировать поддерживаемые форматы в зависимости от требований сайта. - Практическое применение:
wp_get_ext_types()
полезна при разработке функций загрузки файлов, проверки допустимых расширений или создания фильтров для загрузки медиафайлов.
Заключение
Функция wp_get_ext_types()
предоставляет простой способ получить все поддерживаемые WordPress типы файлов и их расширения. Она полезна при работе с мультимедийным контентом и документами, а также позволяет расширять поддержку файлов через фильтры, добавляя новые форматы, необходимые для проекта.