file_is_displayable_image()


WordPressのfile_is_displayable_image()関数は、指定されたファイルがWebブラウザで表示可能な画像形式かどうかを確認します。

構文

file_is_displayable_image( string $path )
  • $path (string) — チェックする画像ファイルのパス。

例 1: 画像が表示可能かどうかを確認

次のコードは、画像ファイルが表示可能かどうかを確認します。

<?php
if ( file_is_displayable_image( get_attached_file( get_the_ID() ) ) ) {
    echo '表示可能な画像です。';
} else {
    echo '表示できない画像です。';
}
?>

例 2: メディアライブラリの画像をフィルタリング

次のコードは、表示可能な画像のみを取得します。

<?php
$attachments = get_posts( array( 'post_type' => 'attachment', 'posts_per_page' => -1 ) );
foreach ( $attachments as $attachment ) {
    $file = get_attached_file( $attachment->ID );
    if ( file_is_displayable_image( $file ) ) {
        echo wp_get_attachment_image( $attachment->ID, 'thumbnail' );
    }
}
?>

例 3: ユーザーがアップロードした画像を検証

ユーザーがアップロードした画像ファイルが表示可能かどうかを確認します。

<?php
if ( isset( $_FILES['userfile'] ) ) {
    $uploaded_file = $_FILES['userfile']['tmp_name'];
    if ( file_is_displayable_image( $uploaded_file ) ) {
        echo '有効な画像形式です。';
    } else {
        echo '無効な画像形式です。';
    }
}
?>

例 4: 投稿の画像メタ情報を確認

投稿に関連付けられた画像が表示可能かどうかをチェックします。

<?php
$image_id = get_post_thumbnail_id( get_the_ID() );
$image_path = get_attached_file( $image_id );
if ( file_is_displayable_image( $image_path ) ) {
    echo 'この投稿のサムネイルは表示可能です。';
} else {
    echo 'この投稿のサムネイルは表示できません。';
}
?>

例 5: カスタムアップローダーでの使用

カスタムアップローダーで、画像ファイルが表示可能かを確認します。

<?php
if ( isset( $_FILES['custom_image'] ) ) {
    $uploaded_file = $_FILES['custom_image']['tmp_name'];
    if ( file_is_displayable_image( $uploaded_file ) ) {
        move_uploaded_file( $uploaded_file, wp_upload_dir()['path'] . '/' . $_FILES['custom_image']['name'] );
        echo 'アップロードが成功しました。';
    } else {
        echo 'アップロードされたファイルは有効な画像ではありません。';
    }
}
?>

注意事項

  • この関数は、画像ファイルがブラウザで表示可能な形式であることを確認しますが、ファイルの安全性を保証するものではありません。
  • アップロードされた画像は、常にサーバー側での追加の検証が推奨されます。

関連機能: