Задавайте питання щодо курсів WordPress

Дозволити завантаження будь-яких типів WordPress

Спробуємо дозволити WordPress завантажувати будь-які типи файлів. Спочатку WordPress не дає такої можливості для захисту сайту, але іноді може знадобитися завантажити нестандартний формат.

Для початку простий і не найкращий спосіб. Для WordPress є спеціальний плагін Role Manager але цей плагін дає права завантажувати будь-які файли, а це небезпечно.

Розглянемо ще один спосіб дозволити завантажувати свої типи файлів. У наступному прикладі я дозволю завантажувати PHP, XHTML і Htaccess. Незвичайно так ).
Параметри вказані мною в коді передаються масив дозволених MIME типів. Результат можна бачити на зображенні.
upload-filter загружаем нужный тип MIME файлов в WordPress

А ось і сам код нашого фільтра типів.

function my_upload_mimes() {
	$mime_types = array( 
		'php|phps'   => 'text/php',
		'xhtm|xhtml' => 'text/html',
		'htaccess'    => 'text/plain'
	);
	return $mime_types;
}
add_filter( 'upload_mimes', 'my_upload_mimes' );

Опис типів, які підтримує WordPress, стандартно перебувати за адресою wp-includes/functions.php.

$mime_types = array(
'323'     => 'text/h323',
'acx'     => 'application/internet-property-stream',
'ai'      => 'application/postscript',
'aif'     => 'audio/x-aiff',
'aifc'    => 'audio/x-aiff',
'aiff'    => 'audio/x-aiff',
'asf'     => 'video/x-ms-asf',
'asr'     => 'video/x-ms-asf',
'asx'     => 'video/x-ms-asf',
'au'      => 'audio/basic',
'avi'     => 'video/x-msvideo',
'axs'     => 'application/olescript',
'bas'     => 'text/plain',
'bcpio'   => 'application/x-bcpio',
'bin'     => 'application/octet-stream',
'bmp'     => 'image/bmp',
'c'       => 'text/plain',
'cat'     => 'application/vnd.ms-pkiseccat',
'cdf'     => 'application/x-cdf',
'cer'     => 'application/x-x509-ca-cert',
'class'   => 'application/octet-stream',
'clp'     => 'application/x-msclip',
'cmx'     => 'image/x-cmx',
'cod'     => 'image/cis-cod',
'cpio'    => 'application/x-cpio',
'crd'     => 'application/x-mscardfile',
'crl'     => 'application/pkix-crl',
'crt'     => 'application/x-x509-ca-cert',
'csh'     => 'application/x-csh',
'css'     => 'text/css',
'dcr'     => 'application/x-director',
'der'     => 'application/x-x509-ca-cert',
'dir'     => 'application/x-director',
'dll'     => 'application/x-msdownload',
'dms'     => 'application/octet-stream',
'doc'     => 'application/msword',
'dot'     => 'application/msword',
'dvi'     => 'application/x-dvi',
'dxr'     => 'application/x-director',
'eps'     => 'application/postscript',
'etx'     => 'text/x-setext',
'evy'     => 'application/envoy',
'exe'     => 'application/octet-stream',
'fif'     => 'application/fractals',
'flr'     => 'x-world/x-vrml',
'gif'     => 'image/gif',
'gtar'    => 'application/x-gtar',
'gz'      => 'application/x-gzip',
'h'       => 'text/plain',
'hdf'     => 'application/x-hdf',
'hlp'     => 'application/winhlp',
'hqx'     => 'application/mac-binhex40',
'hta'     => 'application/hta',
'htc'     => 'text/x-component',
'htm'     => 'text/html',
'html'    => 'text/html',
'htt'     => 'text/webviewhtml',
'ico'     => 'image/x-icon',
'ief'     => 'image/ief',
'iii'     => 'application/x-iphone',
'ins'     => 'application/x-internet-signup',
'isp'     => 'application/x-internet-signup',
'jfif'    => 'image/pipeg',
'jpe'     => 'image/jpeg',
'jpeg'    => 'image/jpeg',
'jpg'     => 'image/jpeg',
'js'      => 'application/x-javascript',
'latex'   => 'application/x-latex',
'lha'     => 'application/octet-stream',
'lsf'     => 'video/x-la-asf',
'lsx'     => 'video/x-la-asf',
'lzh'     => 'application/octet-stream',
'm13'     => 'application/x-msmediaview',
'm14'     => 'application/x-msmediaview',
'm3u'     => 'audio/x-mpegurl',
'man'     => 'application/x-troff-man',
'mdb'     => 'application/x-msaccess',
'me'      => 'application/x-troff-me',
'mht'     => 'message/rfc822',
'mhtml'   => 'message/rfc822',
'mid'     => 'audio/mid',
'mny'     => 'application/x-msmoney',
'mov'     => 'video/quicktime',
'movie'   => 'video/x-sgi-movie',
'mp2'     => 'video/mpeg',
'mp3'     => 'audio/mpeg',
'mpa'     => 'video/mpeg',
'mpe'     => 'video/mpeg',
'mpeg'    => 'video/mpeg',
'mpg'     => 'video/mpeg',
'mpp'     => 'application/vnd.ms-project',
'mpv2'    => 'video/mpeg',
'ms'      => 'application/x-troff-ms',
'mvb'     => 'application/x-msmediaview',
'nws'     => 'message/rfc822',
'oda'     => 'application/oda',
'p10'     => 'application/pkcs10',
'p12'     => 'application/x-pkcs12',
'p7b'     => 'application/x-pkcs7-certificates',
'p7c'     => 'application/x-pkcs7-mime',
'p7m'     => 'application/x-pkcs7-mime',
'p7r'     => 'application/x-pkcs7-certreqresp',
'p7s'     => 'application/x-pkcs7-signature',
'pbm'     => 'image/x-portable-bitmap',
'pdf'     => 'application/pdf',
'pfx'     => 'application/x-pkcs12',
'pgm'     => 'image/x-portable-graymap',
'pko'     => 'application/ynd.ms-pkipko',
'pma'     => 'application/x-perfmon',
'pmc'     => 'application/x-perfmon',
'pml'     => 'application/x-perfmon',
'pmr'     => 'application/x-perfmon',
'pmw'     => 'application/x-perfmon',
'pnm'     => 'image/x-portable-anymap',
'pot'     => 'application/vnd.ms-powerpoint',
'ppm'     => 'image/x-portable-pixmap',
'pps'     => 'application/vnd.ms-powerpoint',
'ppt'     => 'application/vnd.ms-powerpoint',
'prf'     => 'application/pics-rules',
'ps'      => 'application/postscript',
'pub'     => 'application/x-mspublisher',
'qt'      => 'video/quicktime',
'ra'      => 'audio/x-pn-realaudio',
'ram'     => 'audio/x-pn-realaudio',
'ras'     => 'image/x-cmu-raster',
'rgb'     => 'image/x-rgb',
'rmi'     => 'audio/mid',
'roff'    => 'application/x-troff',
'rtf'     => 'application/rtf',
'rtx'     => 'text/richtext',
'scd'     => 'application/x-msschedule',
'sct'     => 'text/scriptlet',
'setpay'  => 'application/set-payment-initiation',
'setreg'  => 'application/set-registration-initiation',
'sh'      => 'application/x-sh',
'shar'    => 'application/x-shar',
'sit'     => 'application/x-stuffit',
'snd'     => 'audio/basic',
'spc'     => 'application/x-pkcs7-certificates',
'spl'     => 'application/futuresplash',
'src'     => 'application/x-wais-source',
'sst'     => 'application/vnd.ms-pkicertstore',
'stl'     => 'application/vnd.ms-pkistl',
'stm'     => 'text/html',
'svg'     => 'image/svg+xml',
'sv4cpio' => 'application/x-sv4cpio',
'sv4crc'  => 'application/x-sv4crc',
't'       => 'application/x-troff',
'tar'     => 'application/x-tar',
'tcl'     => 'application/x-tcl',
'tex'     => 'application/x-tex',
'texi'    => 'application/x-texinfo',
'texinfo' => 'application/x-texinfo',
'tgz'     => 'application/x-compressed',
'tif'     => 'image/tiff',
'tiff'    => 'image/tiff',
'tr'      => 'application/x-troff',
'trm'     => 'application/x-msterminal',
'tsv'     => 'text/tab-separated-values',
'txt'     => 'text/plain',
'uls'     => 'text/iuls',
'ustar'   => 'application/x-ustar',
'vcf'     => 'text/x-vcard',
'vrml'    => 'x-world/x-vrml',
'wav'     => 'audio/x-wav',
'wcm'     => 'application/vnd.ms-works',
'wdb'     => 'application/vnd.ms-works',
'wks'     => 'application/vnd.ms-works',
'wmf'     => 'application/x-msmetafile',
'wps'     => 'application/vnd.ms-works',
'wri'     => 'application/x-mswrite',
'wrl'     => 'x-world/x-vrml',
'wrz'     => 'x-world/x-vrml',
'xaf'     => 'x-world/x-vrml',
'xbm'     => 'image/x-xbitmap',
'xla'     => 'application/vnd.ms-excel',
'xlc'     => 'application/vnd.ms-excel',
'xlm'     => 'application/vnd.ms-excel',
'xls'     => 'application/vnd.ms-excel',
'xlt'     => 'application/vnd.ms-excel',
'xlw'     => 'application/vnd.ms-excel',
'xof'     => 'x-world/x-vrml',
'xpm'     => 'image/x-xpixmap',
'xwd'     => 'image/x-xwindowdump',
'z'       => 'application/x-compress',
'zip'     => 'application/zip'
);

Ваш список повинен містити лише типи файлів, які явно необхідні, в іншому випадку вище константи можуть бути використані зловмисниками.

А ось ще сувенір, плагін для дозволу нових типів для завантаження.

mime type wordpress

Діліться своїм досвідом використання у коментарях. Я поки що не дійшов до тестування плагіна.

Ніколаєнко Максим

Директор веб-студии ProGrafika. Займаюсь розробкою, дизайном та просуванням веб-сайтів. Завжди радий новим читачам блогу та добрим клієнтам.


Вам також може сподобатися...

2 Відповіді

  1. Віт :

    Дякую за матеріал! А чому у вордпресі заборонено завантаження SVG файлів? Якщо я дозволю її як це позначиться на безпеці?

    • Ніколаєнко Максим :

      Обмежте завантаження лише для певного користувача, це дасть більше головного болю тим, хто надумає зламати ваш сайт.
      if ( is_user_logged_in() ) {
      $поточний_користувач = wp_get_поточний_користувач();
      if ( 1 == $current_user->ID ) {
      // робити персонал.
      } ще {
      // робити персонал.
      }
      }

      Саме з цим типом файлів під час завантаження не стикався, але думаю після дозволу варто не забувати про регулярні бекапи та оновлення CMS. Я думаю що WP просто обмежує завантаження типів файлів, що рідко використовуються.

      Радий, що урок сподобався, якщо є питання пишіть.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.

Шаблони для WordPress
Найкращий хостинг в Україні
Стабільний хостинг для Drupal