2026年8月21日
2026年8月21日
WordPressのアップロードできるファイルの種類を追加する方法
はじめに
WordPressはデフォルトで特定のファイルタイプのみをアップロード可能としていますが、サイトのニーズにより他の種類のファイルも必要になることがあります。例えば、PDFやオーディオファイル、動画など、さまざまな形式のメディアファイルを含めたい場合があります。
症状・背景
このテーマが必要になる主な場面:
- ブログ記事にPDFファイルや電子ブックをアップロードしたい
- オンラインストアでダウンロード可能な商品を提供するため
- サイト上で動画コンテンツを共有したい
- アカデミックサイトで研究データやプレゼンテーションを配信したい
手順・設定方法
ステップ1: WordPressのwp-config.phpにコードを追加
# ファイルエディタを使用して、wp-config.phpを開きます。例えばnanoを使用する場合:
sudo nano /var/www/html/wp-config.php
# 以下のコードをwp-config.phpファイルの定数定義の部分に追加します。
define('ALLOW_UNFILTERED_UPLOADS', true);
ステップ2: functions.phpにアップロード可能な拡張子を追加
# ファイルエディタを使用して、functions.phpを開きます。例えばnanoを使用する場合:
sudo nano /var/www/html/wp-content/themes/your-theme/functions.php
# 以下のコードをfunctions.phpファイルの適切な位置に追加します。
function custom_upload_mimes( $mimes = array() ) {
// 下記はPDFを許可する例です。
$mimes['pdf'] = 'application/pdf';
return $mimes;
}
add_filter('upload_mimes', 'custom_upload_mimes');
ステップ3: .htaccessファイルに追加
# ファイルエディタを使用して、.htaccessを開きます。例えばnanoを使用する場合:
sudo nano /var/www/html/.htaccess
# 以下の行を.htaccessの適切な位置に追加します。
<IfModule mod_mime.c>
# PDFを許可する例
AddType application/pdf .pdf
</IfModule>
ステップ4: ファイルアップロードの制限を変更
# php.iniファイルを開き、以下の設定を行います。
sudo nano /etc/php/7.4/apache2/php.ini
; システムレベルのアップロード制限を増やします。例えば:
upload_max_filesize = 64M
post_max_size = 64M
# 変更後はApacheを再起動して変更を有効にします。
sudo systemctl restart apache2
注意事項
- ファイルのアップロード制限を増やす際には、サーバーが十分なディスクスペースを持っていることを確認してください。
- セキュリティ上の観点から、無闇にファイルタイプを追加しないように注意してください。特に実行可能ファイル(.exe, .shなど)は危険性が高いです。
- パフォーマンス問題を避けるために、大量のデータや大きなファイルサイズのアップロードは適切なサーバースペックが必要となります。
まとめ
1. ALLOW_UNFILTERED_UPLOADS: この定数を有効にすることでwp-config.phpで指定した以外のファイルタイプもアップロード可能になります。
2. custom_upload_mimes関数: ファイルの拡張子とMIMEタイプを追加します。これにより、WordPressが特定のファイル形式を受け入れるようにします。
3. htaccess設定: サーバーで認めるファイルタイプを追加することで、Apacheによって適切に処理されるようにします。
4. php.iniの変更: ファイルアップロードの最大サイズを調整し、サイトのニーズに合わせた制限を設けます。
関連記事: