WordPressで許可されるファイルの種類(MIMEタイプ)をカスタマイズする方法

投稿日:2024年04月09日(火) 更新日:2024年04月15日(月)
WordPressで許可されるファイルの種類(MIMEタイプ)をカスタマイズする方法|UMENOKI|すぐに仕事で使えるIT技術情報メディア

みなさんこんにちは!エンジニアの高澤です!

今回はWordPressで許可されるファイルの種類(MIMEタイプ)をカスタマイズする方法について解説していきたいと思います。

当記事の問題が発生した場合は解決するのに不可欠な内容になりますので、よろしければぜひ当記事をお役立ていただけますと幸いです。

今回実装する内容

まずは今回実装する内容について解説していきたいと思います。

結論からいうとタイトルにもありますように「WordPressで許可されるファイルの種類(MIMEタイプ)をカスタマイズする方法」になります。

そもそもこちらのカスタマイズ実装がなぜ必要になるかというと、「WordPressは標準の状態のままではアップロードできないファイルがいくつかある」からです。

試しにWordPress管理画面左メニューの「メディア」から、ファビコンで使用されるファイル形式であるicoファイルをアップロードしてみてください。

アップロードしようとすると下図のようにエラーが表示されてしまい、アップロードができないかと思います。

これはWordPress標準ではいくつかのファイル形式のアップロードが許可されていないためです。

ここで必要になる実装が当記事の内容になります。

当記事の実装を行うことにより、例えばWordPressサイトでicoファイルをアップロードできるようになります。

これで通常の画像ファイルと同じようにメディアライブラリにアップロードされ、サイトで普通に使用できるようになります。

MIMEタイプとは

MIME(Multipurpose Internet Mail Extensions)タイプとは、インターネット上でデータを送受信する際に使用されるデータ形式を識別するための標準化された方法です。

これは、データがどのような形式であるかを示すラベルのようなものです。

MIMEタイプは通常、データの内容や種類に基づいて設定されます。

MIMEタイプは、メディアタイプ(media type)とサブタイプ(sub-type)の組み合わせで構成されます。例えば、一般的な画像ファイルのMIMEタイプは「image/jpeg」です。

ここで、「image」がメディアタイプであり、「jpeg」がそのサブタイプです。

他の例としては、「text/html」(HTML文書)や「application/pdf」(PDFファイル)などがあります。

MIMEタイプは、ウェブブラウザや電子メールクライアントなどのクライアントソフトウェアによって使用され、データの種類に応じて適切な処理が行われるようにします。

また、ウェブサーバーやウェブアプリケーションなどのサーバーソフトウェアも、適切なMIMEタイプを設定することで、クライアントに対して正しい形式のデータを提供します。

実装する方法

それでは早速実装する方法について解説していきます。

以下のコードをfunctions.phpにコピー&ペーストしてください。

<?php
function custom_upload_mimes( $existing_mimes ) {
    // ICOファイルを追加する
	$existing_mimes['ico'] = 'image/vnd.microsoft.icon';
    return $existing_mimes;
}
add_filter( 'upload_mimes', 'custom_upload_mimes' );

上記のコードは、WordPressでアップロードできるファイルの種類(MIMEタイプ)を拡張するコードになります。

具体的には、フィルターフックであるupload_mimesフックに対して、独自に作成した関数custom_upload_mimes()関数を追加してファビコンで使われるICOファイルを許可しております。

以下のコードの部分でicoファイルのアップロードを可能にしております。

// ICOファイルを追加する
$existing_mimes['ico'] = 'image/vnd.microsoft.icon';

この行で「image/vnd.microsoft.icon」というMIMEタイプを定義しております。

当記事の例ではicoファイルのアップロードを許可するコードになりますが、ご自身の状況に応じてこちらの内容を変更することができます。

例えばAdobeのIllustratorやPhotoshopのファイルをアップロードできるようにしたければ、以下のコードのように実装します。

Photoshop(.psd)ファイルをアップロード可能にする場合:

<?php
function custom_upload_mimes( $mimes ) {
    $mimes['psd'] = 'image/vnd.adobe.photoshop'; 
    return $mimes;
}
add_filter( 'upload_mimes', 'custom_upload_mimes' );

Illustrator(.ai)ファイルをアップロード可能にする場合:

<?php
function custom_upload_mimes( $mimes ) {
    $mimes['ai'] = 'application/pdf';
    return $mimes;
}
add_filter( 'upload_mimes', 'custom_upload_mimes' );

また他のMIMEタイプについては「MIMEタイプ一覧」などで検索していただければ色々出てきますので、ご自身のアップロードを許可したいものを指定して実装していただければと思います。

プラグインで設定する方法

ここまでは自作のコードでMIMEタイプ許可の実装を解説してきましたが、プラグインもありますのでそちらも解説させていただきます。

結論、「WP Add Mime Types」というプラグインがありますのでおすすめいたします。

インストールして有効化していただくと、下図のようなプラグインの設定ページが追加されますのでこちらから設定することができます。

設定ページにある説明文に沿って許可したいMIMEタイプを設定していきます。

よろしければご確認していただけますと幸いです。

まとめ

WordPressで許可されるファイルの種類(MIMEタイプ)をカスタマイズする方法についての解説は以上になります。

当記事の内容は、WordPressで許可されていないファイルをアップロードする際にエラーがおこるという問題が発生した場合に解決するのに不可欠な内容になります。

よろしければぜひお仕事などで当記事をお役立ていただけますと幸いです。

執筆者

UMENOKI編集部 高澤 翔汰

歴5年目(2024年8月以降から5年目です)のエンジニアです!
CMSでのサイト構築とWebデザイン制作を兼任して5年目になります。
自作のiOSアプリ(iPhoneアプリ)やWordPressプラグインを開発することもあり、まだまだ現在進行形で勉強中です!

お気軽に皆さんのご要望をお聞かせください!

どんなに些細なことでも構いません!よろしければ記事や当サイトへの「こんな記事があったら仕事とかで役に立つな〜」や「こうだったらもっと役に立つのに!」といったようなご要望等をお気軽にお聞かせください!今後のサービス改善にお役立てさせていただきます!

例1)Reactの技術記事を書いてほしい!
例2)WordPressの使い方とかを初心者向けに解説してほしい!...など

送信と同時にプライバシーポリシーに同意したものとします。
サンタさん