允许上载所有文件类型

时间:2012-10-05 作者:Sebastian Krysmanski

我正在使用Wordpress 3.4.2来创建一个私人博客,即只有我才能发布的博客。现在,Wordpress阻止我上载某些文件类型(如C#源文件)。据我所知,有一个白名单定义了可以上传的内容。

有没有插件可以扩展(或者更好,甚至禁用)这个白名单?

所有其他答案都告诉我应该编辑我的主题,但我宁愿有一个插件(这样我就不需要编辑所有主题)。

还有,我发现this plugin 但是,它再次要求我编辑服务器上的一些文件(当插件更新时,这些文件可能会被覆盖)。

那么,还有别的吗?

3 个回复
最合适的回答,由SO网友:Sebastian Krysmanski 整理而成

不幸的是,toscho的答案不起作用——至少在Wordpress 3.4及以上版本中不起作用。

正确的解决方案如下:

#
# For this, see: 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);

SO网友:STing

您可以创建一个插件或将其添加到配置文件中,但对于3.9.2来说,这对我来说很有用。

define(\'ALLOW_UNFILTERED_UPLOADS\', true);

SO网友:fuxia

滤器\'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;
}

结束

相关推荐

Protect Uploads in Multisite

我正在使用WordPress multisite(3.3.1),并试图保护从某些博客上传的内容不被热链接和直接访问。这与How to Protect Uploads, if User is not Logged In?, 但我只想通过服务器上运行的脚本访问上传内容(即,只有服务器可以显示/提供上传服务),因此内容可以受到WordPress用户权限的保护。例如,我有一个名为40c的字段。jpg位于localhost/files/2011/07/40c。jpg;我想让文件显示出来only 在本地域上由HTML