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の変更: ファイルアップロードの最大サイズを調整し、サイトのニーズに合わせた制限を設けます。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ