概要
file_is_valid_image
関数は、指定したファイルが有効な画像ファイルであるかどうかを確認するために使用される関数です。この関数は、ユーザーからアップロードされたファイルが画像形式であるかを判断する際によく使用されます。
この関数がよく使われる具体的な機能の例は以下のとおりです:
- 画像アップロード検証
- ウェブサイトのメディアライブラリにおけるファイル確認
- 画像のサムネイル作成前のフォーマットチェック
- 投稿やページに添付された画像の検証
- ユーザーによるファイルアップロード機能の実装
- プラグインやテーマにおける画像処理機能の向上
- REST APIで画像を操作する際の安全性強化
- ファイル種類に基づいたフィルタリングやエラーメッセージ表示
構文
file_is_valid_image( string $file )
パラメータ
$file
(string) — 確認する画像ファイルのパス。
戻り値
- 成功時に
true
を返し、無効な画像ファイルの場合にはfalse
を返す。
関連する関数
使用可能なバージョン
- WordPress 3.5以降で使用可能。
コアファイルのパス
wp-includes/media.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 |
サンプルコード
-
画像ファイルの検証
$file_path = 'path/to/image.jpg'; if (file_is_valid_image($file_path)) { echo "これは有効な画像ファイルです。"; } else { echo "無効な画像ファイルです。"; }
- このコードは指定したパスのファイルが有効な画像かどうかを確認し、その結果を表示します。
-
画像アップロード時のチェック
if ($_FILES['uploaded_file']) { $upload_file = $_FILES['uploaded_file']['tmp_name']; if (file_is_valid_image($upload_file)) { echo "アップロードされたファイルは画像です。"; } else { echo "アップロードされたファイルは画像ではありません。"; } }
- ユーザーがアップロードしたファイルが画像かどうかを確認するための例です。
-
メディアライブラリのカスタマイズ
add_filter('wp_handle_upload_prefilter', 'check_image_before_upload'); function check_image_before_upload($file) { if (!file_is_valid_image($file['tmp_name'])) { $file['error'] = "画像ファイルとして無効です。"; } return $file; }
- このフィルターは、メディアライブラリにファイルをアップロードする際に画像の検証を行います。
-
投稿の画像添付時チェック
function validate_attached_image($post_id) { $attachments = get_posts(array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'post_parent' => $post_id, 'numberposts' => -1 )); foreach ($attachments as $attachment) { if (!file_is_valid_image(get_attached_file($attachment->ID))) { wp_delete_attachment($attachment->ID); } } } add_action('save_post', 'validate_attached_image');
- 投稿に添付された画像が有効かどうかを確認し、無効な場合は削除する例です。
-
REST APIでの画像検証
add_action('rest_api_init', function () { register_rest_route('myplugin/v1', '/upload', array( 'methods' => 'POST', 'callback' => 'handle_image_upload', )); }); function handle_image_upload(WP_REST_Request $request) { $file = $request->get_file_params()['image']; if (file_is_valid_image($file['tmp_name'])) { return new WP_REST_Response('画像は有効です。', 200); } else { return new WP_REST_Response('無効な画像です。', 400); } }
- REST APIエンドポイントで画像の検証を行う例です。アップロードされた画像の有効性をチェックします。