Разрешить загрузку всех типов файлов
Я использую WordPress 3.4.2 для личного блога, то есть блога, в котором могу публиковать только я. WordPress не позволяет мне загружать определенные типы файлов (например, исходные файлы C#). Насколько я понимаю, существует белый список, который определяет, какие файлы можно загружать.
Есть ли плагин, который может расширить или, что еще лучше, отключить этот белый список?
Все остальные ответы предлагают мне редактировать тему, но я бы предпочел использовать плагин (чтобы не редактировать все мои темы).
Также я нашел этот плагин, но опять же, он требует от меня редактирования некоторых файлов на сервере (которые, вероятно, перезаписываются при обновлении плагина).
Есть ли какие-то другие варианты?
Это в wp-config.php. Я действительно не понимаю, почему это не установлено по умолчанию, хотя бы для администраторов.

Однако система по-прежнему запрещает мне загружать, например, файлы ".exe" "по соображениям безопасности". (Может быть, это проблема моего плагина Real media library?) Пользователь с правами администратора. Явное разрешение MIME-типов через фильтр upload_mimes работает.

Какие могут быть последствия для безопасности? Оставляет ли отключение этой настройки мой сайт уязвимым для загрузки вредоносных скриптов и т.п.?

@AbrahamBrookes - Уверен, что есть риски для безопасности. Всякий раз, когда вы разрешаете больше вещей, больше вещей может вам навредить. Я работаю со многими приватными сайтами за SSO, поэтому для меня это не такая проблема. Но для публичного сайта вы либо не должны разрешать загрузку через фронтенд, либо ограничивать загрузочный скрипт на фронтенде только тем, что вы явно разрешили. Эта настройка возвращает ваш сайт в "чистое" состояние - и учитывая требования C#, вам в любом случае нужно сделать это первым. У меня также есть скрипт для белого списка, но это уже другой вопрос.

Фильтр 'user_has_cap'
и установка 'unfiltered_upload'
в значение 1.
Пример кода не тестировался:
/*
Plugin Name: Remove Uploads Filter
Plugin URI: http://wordpress.stackexchange.com/questions/67225/allow-all-file-types-for-upload
Description: Disables white-list filter for uploads
Version: 1.0
Author: WPSE - @toscho
*/
add_filter( 'user_has_cap', 'wpse_67225_unfiltered_upload' );
function wpse_67225_unfiltered_upload( $caps )
{
$caps['unfiltered_upload'] = 1;
return $caps;
}

К сожалению, ответ toscho не работает — по крайней мере, в WordPress 3.4 и выше.
Правильное решение следующее:
#
# Для этого смотрите: wp-includes/capabilities.php > map_meta_cap()
#
function wpse_6533_map_unrestricted_upload_filter($caps, $cap) {
if ($cap == 'unfiltered_upload') {
$caps = array();
$caps[] = $cap;
}
return $caps;
}
add_filter('map_meta_cap', 'wpse_6533_map_unrestricted_upload_filter', 0, 2);

Привет, куда мне вставить этот код выше? Будет ли он работать, если я помещу его в functions.php?

@LeonardDrapeza Да, вы можете поместить его в functions.php
вашей темы. Однако это будет работать только пока ваша тема активна, насколько я знаю.

Тем не менее, мне запрещено загружать, например, файлы ".exe" "по соображениям безопасности". (Может быть, это проблема моего плагина Real media library?) Пользователь с правами администратора. Явное разрешение MIME-типов через фильтр upload_mimes работает.
