Список дозволених типів файлів для завантаження в WordPress

40

Список разрешенных типов файлов для загрузки в 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',
'div' => '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;
}

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’,
‘div’ => ‘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');

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. Смію тихо сподіватися, що не дарма терзав клавіатуру в черговий раз, і набір моїх «бука» кому-небудь стане корисним.