file_is_displayable_image()WP 2.5.0

Проверяет является ли файл изображением (подходит ли он для показа на странице). Условный тег.

Функцию часто используют как условный тег при работе с изображениями.

Когда нужно определить, является ли файл из медиабиблиотеки изображением, используйте wp_attachment_is_image().

Часто нужно подключить файл image.php, в котором определена описываемая функция:

require_once ABSPATH . 'wp-admin/includes/image.php';

По умолчанию этот файл подключается после хука wp_loaded, при выводе контента в админке.

Работает на основе php функции getimagesize().

1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.42 сек (очень быстро) | PHP 7.2.16, WP 5.1.1
Хуки из функции

Возвращает

true|false. True - подходит для отображения, false - не подходит.

Функция вернёт true для следующих расширений: .gif, .jpeg, .png, .bmp, .ico.

Использование

file_is_displayable_image( $path );
$path(строка) (обязательный)
Путь к проверяемому файлу.

Примеры

0

#1 Проверим, являются ли файлы изображением

require_once ABSPATH . 'wp-admin/includes/image.php';

$path     = 'F:\server\sites\wp-test.ru\wp-admin\images\align-center.png';
$is_image = file_is_displayable_image( $path ); //> true

$path     = 'F:\server\sites\wp-test.ru\wp-admin\css\common.css';
$is_image = file_is_displayable_image( $path ); //> false

if ( $is_image ) {
	echo 'Файл является изображением';
}
else {
	echo 'Файл не является изображением';
}

Список изменений

С версии 2.5.0 Введена.

Код file_is_displayable_image() WP 6.4.3

function file_is_displayable_image( $path ) {
	$displayable_image_types = array( IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_BMP, IMAGETYPE_ICO, IMAGETYPE_WEBP );

	$info = wp_getimagesize( $path );
	if ( empty( $info ) ) {
		$result = false;
	} elseif ( ! in_array( $info[2], $displayable_image_types, true ) ) {
		$result = false;
	} else {
		$result = true;
	}

	/**
	 * Filters whether the current image is displayable in the browser.
	 *
	 * @since 2.5.0
	 *
	 * @param bool   $result Whether the image can be displayed. Default true.
	 * @param string $path   Path to the image.
	 */
	return apply_filters( 'file_is_displayable_image', $result, $path );
}