ワードプレスのwp_get_image_mime関数の使用方法・解説

概要

wp_get_image_mime関数は、画像ファイルのMIMEタイプを取得するために使用されます。この関数は、開発者が媒体に関する情報を取得し、それに基づいて条件分岐や表示を行う際に便利です。以下のような機能を実装する際によく使われます。

  1. 画像の種類による表示内容の変更
  2. アップロードされた画像の検証
  3. メディアギャラリーでのファイルフィルタリング
  4. ダウンロードリンクの動的生成
  5. 画像のプレビュー表示における条件付け
  6. 画像処理フックへの適用
  7. ブロックエディター内での画像バリデーション
  8. カスタムテンプレートでの画像表示条件の設定

構文

wp_get_image_mime( $id );

パラメータ

  • $id (整数): 画像のメディアファイルのID。これはWordPressにアップロードされた画像の一意の識別子です。

戻り値

  • 文字列: 画像ファイルのMIMEタイプを返します。例えば、image/jpegimage/pngなどです。指定したIDが画像でない場合や存在しない場合は、falseを返します。

関連する関数

バージョン情報

  • この関数は、WordPress 4.6.0以降で使用可能です。

コアファイルのパス

  • wp-includes/media.php

サンプルコード

サンプル1: 特定の画像IDのMIMEタイプを取得する

$image_id = 123; // 取得したい画像のIDを指定
$mimetype = wp_get_image_mime( $image_id );

echo 'MIME Type: ' . $mimetype; // 取得したMIMEタイプを表示

このサンプルコードは、指定した画像IDのMIMEタイプを取得し、表示するものです。

サンプル2: 画像を条件によって表示する

$image_id = 456;
$mimetype = wp_get_image_mime( $image_id );

if ( $mimetype === 'image/jpeg' ) {
    echo '<img src="' . wp_get_attachment_url( $image_id ) . '" alt="JPEG Image">';
}

このサンプルコードは、画像がJPEGである場合のみ、その画像を表示します。

サンプル3: メディアライブラリ内でのフィルタリング

function filter_media_by_mime_type( $query ) {
    if ( ! is_admin() ) return;

    $query->set( 'post_mime_type', 'image/png' ); // PNG画像だけを表示
}
add_action( 'pre_get_posts', 'filter_media_by_mime_type' );

このサンプルコードは、メディアライブラリでPNG画像だけを表示するようにクエリをフィルタリングします。

サンプル4: 画像アップロード時の確認

function check_image_mime( $file ) {
    $mime = wp_get_image_mime( $file['id'] );

    if ( ! $mime ) {
        return array('error' => 'Invalid image type.');
    }

    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'check_image_mime' );

このサンプルコードは、画像がアップロードされる際にMIMEタイプを確認し、無効な場合はエラーメッセージを返します。

サンプル5: 投稿内の画像を取得し、そのMIMEタイプを表示

function display_post_images_mime() {
    $attachments = get_posts(array(
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'numberposts' => -1
    ));

    if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
            echo 'Image ID: ' . $attachment->ID . ' - MIME Type: ' . wp_get_image_mime( $attachment->ID ) . '<br>';
        }
    }
}

このサンプルコードは、すべての投稿内の画像を取得し、それぞれのMIMEタイプを表示します。

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

アクション名 使用可能性
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

非推奨または削除されたバージョン

  • 特に非推奨または削除されたバージョンはありません。

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


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