Dobrovoi Master
сделано с душой
В состоянии постоянного подключения...

Список разрешенных типов файлов для загрузки в WordPress

Список разрешенных типов файлов для загрузки в WordPress

Всем доброго времени суток!
О том какой популярный и замечательный движок для блогов я распинаться не буду, кто в теме и так все знает и достоинства , и недостатки. Для себя же я открыл его сравнительно недавно, ну что такое три года, барахтанья в блогосфере, так пустячок.  Это к тому, что WP не перестает удивлять своими возможностями, порой правда вгоняя в ступор, чаще из за банальной нехватки информации. Каждый раз узнаешь что то новое, по большей части методом проб и ошибок.
Так вот, если не влезая в словесную мутатень, решил поглубже покопать и до конца узнать , какие же всетаки типы файлов поддерживаются и разрешены для загрузки в системе WordPress. Мы чаще всего используем для загрузки на блог  Image Uploader (крутарям от wp, просьба не подхихикивать), забывая о том, что не только изображения, но другие типы файлов разрешены для загрузки в WP, например такие как PDF, MS Office, OpenOffice, GZ, ZIP и т.д.  Информация конечно есть по теме, но все больше не официальные документы.
Конечно первым делом я попытался найти подробности в Интеренте, но полного обьяснения где, что  и как  мне так и не удалось нарыть, может плохо искал…Так, мне пришлось ковырять исходный код WordPress, благо это у нашего брата в крови, только дай чего нибудь раздербанить, и нашел-таки подробную выкладку функции поддерживаемых файлов для загрузки.  Америку конечно не открыл, но хочу поделиться со всеми страждующими своим открытием, может кому и будет в помощь.

Копаясь в коде, набрел на функцию get_allowed_mime_types () ясно и четко прописанную в / Wp-includes/functions.php файле. Все разрешенные типы файлов в коде этой функции объявлены как «extension» => «mime type». Все разложено, как говориться, по полочкам, смотрим код и дальше распоряжаемся кому как надо:

function get_allowed_mime_types() {
 static $mimes = false;
 
 if ( !$mimes ) {
  // Accepted MIME types are set here as PCRE unless provided.
  $mimes = apply_filters( 'upload_mimes', array(
  'jpg|jpeg|jpe' => 'image/jpeg',
  'gif' => 'image/gif',
  'png' => 'image/png',
  'bmp' => 'image/bmp',
  'tif|tiff' => 'image/tiff',
  'ico' => 'image/x-icon',
  'asf|asx|wax|wmv|wmx' => 'video/asf',
  'avi' => 'video/avi',
  'divx' => 'video/divx',
  'flv' => 'video/x-flv',
  'mov|qt' => 'video/quicktime',
  'mpeg|mpg|mpe' => 'video/mpeg',
  'txt|asc|c|cc|h' => 'text/plain',
  'csv' => 'text/csv',
  'tsv' => 'text/tab-separated-values',
  'rtx' => 'text/richtext',
  'css' => 'text/css',
  'htm|html' => 'text/html',
  'mp3|m4a|m4b' => 'audio/mpeg',
  'mp4|m4v' => 'video/mp4',
  'ra|ram' => 'audio/x-realaudio',
  'wav' => 'audio/wav',
  'ogg|oga' => 'audio/ogg',
  'ogv' => 'video/ogg',
  'mid|midi' => 'audio/midi',
  'wma' => 'audio/wma',
  'mka' => 'audio/x-matroska',
  'mkv' => 'video/x-matroska',
  'rtf' => 'application/rtf',
  'js' => 'application/javascript',
  'pdf' => 'application/pdf',
  'doc|docx' => 'application/msword',
  'pot|pps|ppt|pptx|ppam|pptm|sldm|ppsm|potm' => 'application/vnd.ms-powerpoint',
  'wri' => 'application/vnd.ms-write',
  'xla|xls|xlsx|xlt|xlw|xlam|xlsb|xlsm|xltm' => 'application/vnd.ms-excel',
  'mdb' => 'application/vnd.ms-access',
  'mpp' => 'application/vnd.ms-project',
  'docm|dotm' => 'application/vnd.ms-word',
  'pptx|sldx|ppsx|potx' => 'application/vnd.openxmlformats-officedocument.presentationml',
  'xlsx|xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml',
  'docx|dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml',
  'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
  'swf' => 'application/x-shockwave-flash',
  'class' => 'application/java',
  'tar' => 'application/x-tar',
  'zip' => 'application/zip',
  'gz|gzip' => 'application/x-gzip',
  'exe' => 'application/x-msdownload',
  // openoffice formats
  'odt' => 'application/vnd.oasis.opendocument.text',
  'odp' => 'application/vnd.oasis.opendocument.presentation',
  'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
  'odg' => 'application/vnd.oasis.opendocument.graphics',
  'odc' => 'application/vnd.oasis.opendocument.chart',
  'odb' => 'application/vnd.oasis.opendocument.database',
  'odf' => 'application/vnd.oasis.opendocument.formula',
  // wordperfect formats
  'wp|wpd' => 'application/wordperfect',
  ) );
 }
 
 return $mimes;
}

Из приведенного выше кода явно видно, какие типы файлов поддерживаются для загрузки в WP. О том как разрешить загружать различные типы файлов, не поддерживаемые движком, нашел в свое время у Е.П выручалку. Наверняка каждый сталкивался с такой ситуевиной, когда пытаясь загрузить не очень распространенных форматов на ваш блог, бесцеремонно вылазила ошибка, поскольку WP, тупо не поддерживает загрузку фалов такого типа.
Вооружившись для наглядности кодом показанным выше, вы можете добавить новые типы фалов в список разрешенных WordPress. Нужно просто в ваш файл functions.php скопировать следующий код (типы файлов должны быть разделены символом ‘|’ ):

function addUploadMimes($mimes) {
    $mimes = array_merge($mimes, array(
        'tmbundle|tmCommand|tmDragCommand|tmSnippet|tmLanguage|tmPreferences' => 'application/octet-stream'
    ));
    return $mimes;
}
add_filter('upload_mimes', 'addUploadMimes');

В чем польза всего вышеописанного? В знании, а знание — это сила! Вооружившись нужной информацией, легче создавать что то новое, а не баландаться, как кутенок в потьмах, набивая шишки и ругая почем зря этот комбайн, имя которому — Wopdpress. Смею тихо надеяться, что не зря терзал клавиатуру в очередной раз, и набор моих «букав» кому-нибудь станет полезным.

Всего комментариев: 3

  • Ксения: 1 апреля, 2011 в 15:34

    Спасибо за статью, помогла добавить возможность размещения DJVU-файлов (что-то типа PDF):)
    А то действительно по этому вопросу мало информации в Интернете…

    Ответить
    • driver: 1 апреля, 2011 в 18:24

      Пожалуйста, Ксения.

      Ответить
  • Серый: 11 декабря, 2013 в 00:06

    Полезная статья, помогла с добавлением нужных файлов!

    Ответить

Оставить комментарий

Ваш email не будет опубликован.

Вы можете использовать следующие HTML тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>