ワードプレスのget_allowed_mime_typesフィルタの使用方法・解説

概要

get_allowed_mime_typesフィルタは、WordPressにおいて有効なMIMEタイプを取得するための機能を提供します。このフィルタは、主にファイルのアップロードやメディアの管理に関連するプラグインやテーマで使用され、ユーザーがアップロード可能なファイル形式をカスタマイズする際に便利です。以下は、このフィルタがよく使用される機能の例です。

  1. 画像ファイルのアップロードを許可する。
  2. カスタムファイルタイプのサポートを追加する。
  3. セキュリティ上の理由から許可されたファイル形式を制限する。
  4. 既存のMIMEタイプのカスタマイズ。
  5. 特定のユーザー向けに異なるファイル形式を設定する。
  6. メディアライブラリの管理インターフェースの改良。
  7. 特定の投稿タイプ用のカスタマイズされたファイルサポート。
  8. Multi-site環境でのファイルアップロード制限。

構文

function custom_mime_types($mimes) {
    // カスタムMIMEタイプを追加
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'custom_mime_types');

パラメータ

  • $mimes: 既存のMIMEタイプの配列。

戻り値

  • 更新されたMIMEタイプの配列。

関連する関数

https://refwp.com/?titleonly=1&s=get_allowed_mime_types

使用可能なバージョン

このフィルタは、WordPress 2.9.0以降で使用可能です。

コアファイルのパス

wp-includes/functions.php

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

  1. SVGのアップロードを許可する
function allow_svg_upload($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'allow_svg_upload');

このコードはSVGファイルのアップロードを許可するためにMIMEタイプを追加します。

  1. PDFファイルの追加サポート
function add_pdf_mime_type($mimes) {
    $mimes['pdf'] = 'application/pdf';
    return $mimes;
}
add_filter('upload_mimes', 'add_pdf_mime_type');

PDFファイルのアップロードを許可するため、MIMEタイプを追加しています。

  1. カスタムファイルタイプの制限
function restrict_mime_types($mimes) {
    unset($mimes['exe']);
    return $mimes;
}
add_filter('upload_mimes', 'restrict_mime_types');

このコードは、セキュリティ上の理由から、実行可能ファイル(.exe)のアップロードを禁止します。

  1. 複数のカスタムMIMEタイプを追加
function custom_multiple_mime_types($mimes) {
    $mimes['mp4'] = 'video/mp4';
    $mimes['zip'] = 'application/zip';
    return $mimes;
}
add_filter('upload_mimes', 'custom_multiple_mime_types');

MP4動画とZIPファイルのアップロードを許可するためにMIMEタイプを追加します。

  1. 条件付きでファイルタイプを追加
function conditional_mime_type($mimes) {
    if (current_user_can('administrator')) {
        $mimes['docx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
    }
    return $mimes;
}
add_filter('upload_mimes', 'conditional_mime_type');

管理者のみがDOCXファイルをアップロードできるようにするため、条件付きでMIMEタイプを追加します。

この関数について質問する


上の計算式の答えを入力してください