UPLOAD_MIMES过滤器不起作用

时间:2012-03-07 作者:dnagirl

我想增加对这个项目的支持。wif文件(文本/普通)到我的网站(WP3.3.1)。所以我在我的主题中添加了以下函数functions.php. 我的主题是的子主题Suffusion.

add_filter(\'upload_mimes\', \'custom_upload_mimes\');

function custom_upload_mimes ( $existing_mimes=array() ) {
  $existing_mimes[\'wif\'] = \'text/plain\';
  return $existing_mimes;
}
它没有任何效果。当我试图上传wif文件时,wif文件继续生成安全消息。

所以我查看了get_allowed_mime_types(). “文本/普通”的唯一条目是\'txt|asc|c|cc|h\' => \'text/plain\'. 只是为了好玩,我把它编辑成这样:\'txt|asc|c|cc|h|wif\' => \'text/plain\'. 允许该编辑。要上载的wif文件。

但由于编辑核心WP文件是个坏主意,我尝试了另一种解决方案。假设$mimes数组中的值必须是唯一的,我尝试使用此函数更改指向“text/plain”的键:

add_filter(\'upload_mimes\', \'custom_upload_mimes\');

function custom_upload_mimes($mimes=array()){
    $k=\'wif\';
    $v=\'text/plain\';
    if($ek=array_search($v,$mimes)){
        unset($mimes[$ek]);
        $ek.=\'|\'.$k;
        $mimes[$ek]=$v;
    }
    return $mimes;
}
然而,这也不允许。wif文件上载。

所以我认为upload_mimes 由于某些原因,未应用筛选器。或者,我的过滤器被另一个过滤器覆盖。我尝试了高(1)和低(PHP\\u MAX\\u INT)优先级的函数。它没有效果。我还检查了。htaccess指令和它们都不是。有什么想法吗?

ETAIt结果表明,包含backupfordpress的插件组合会导致连接到“upload\\u mimes”的过滤器无法运行。我还没有确定这是为什么,oat BackupfordPress的人告诉我,他们的插件没有触及该过滤器。

3 个回复
SO网友:Gabriel S Merovingi

我会使用:

add_filter( \'upload_mimes\', \'theme_restrict_mime_types\' );
function theme_restrict_mime_types( $mime_types )
{
    $mime_types = array(
        \'wif\' => \'text/plain\',
        \'doc|docx\' => \'application/msword\',
        \'jpg|jpeg\' => \'image/jpeg\',
        \'gif\' => \'image/gif\',
        \'png\' => \'image/png\'
    );
    return $mime_types;
}
在这个示例中,我列出了我允许的所有类型(包括WIF)。所以你需要添加你喜欢的东西。

这适用于我的WP 3.3.1安装。

SO网友:kaiser

滤清器有问题。取消注册旧密钥,以避免冲突。然后简单地添加新的。

add_filter( \'upload_mimes\', \'wpse44777_upload_mimes\' );
function wpse44777_upload_mimes( $mime_types )
{
    // First we unregister the old key
    unset( $mime_types[\'txt|asc|c|cc|h\'] );

    // Then we add a new one
    ! isset( $mime_types[\'txt|asc|c|cc|h|wif\'] ) AND $mime_types[\'txt|asc|c|cc|h|wif\'] = \'text/plain\';

    return $mime_types;
}

SO网友:helgatheviking

这篇文章很老了,但我认为这不再是WIF文件的正确mime类型。

function t4a_add_custom_upload_mimes( $allowed_mimes ) {
    $allowed_mimes[\'wif\'] = \'application/watcherinfo+xml\';
    return $allowed_mimes;
}
add_filter( \'upload_mimes\', \'t4a_add_custom_upload_mimes\' );
我要补充的是,这对我来说是在本地工作的,但在我的live站点上不是这样,所以还有一些其他服务器冲突,我还没有意识到。

结束

相关推荐

404从wp-Content/Uploads/获取图像时

我在获取图像时获得404状态,http仍然包含该图像。图像显示在浏览器中,但404代码中断了一些应用程序。对wp内容/上载/的调用被重定向到。htaccess:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\\.php$ - [L] RewriteRule (.*) /index.php?getfile=$1 [L] </IfModule>&