web-dev-qa-db-ja.com

すべてのファイルタイプをアップロード可能にする

私はプライベートブログ、つまり自分だけが投稿できるブログにWordpress 3.4.2を使用しています。今、Wordpressは私が(C#ソースファイルのような)特定のファイルタイプをアップロードすることを防ぎます。私の知る限りでは、アップロードできるものを定義するホワイトリストがあります。

このホワイトリストを拡張することができる、あるいは無効にすることさえできるプラグインはありますか?

他のすべての回答では、テーマを編集する必要があると言われますが、そのためのプラグインが必要です(テーマをすべて編集する必要はありません)。

また、私は このプラグインを見つけました しかし、ここでもまた、私のサーバー上のファイルを編集する必要があります(おそらくプラグインが更新されると上書きされます)。

それで、他に何かありますか?

残念ながら、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);

プラグインを作成するか、これを設定ファイルに追加することができますが、3.9.2ではこれが私にとってはうまくいきました。

define('ALLOW_UNFILTERED_UPLOADS', true);
6
STing

'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;
}
3
fuxia