Функция has_image_size()
в WordPress позволяет проверить, существует ли указанный размер изображения. Это полезно, когда вы хотите управлять различными размерами изображений, зарегистрированными в вашей теме или плагине.
has_image_size( string $name ): bool
Описание функции
Функция принимает один параметр — название размера изображения, и возвращает логическое значение: true
, если размер существует, или false
, если нет. Следует отметить, что функция проверяет только размеры, зарегистрированные с помощью add_image_size()
, и не учитывает стандартные размеры, такие как thumbnail
, medium
, medium_large
и large
, которые всегда будут возвращать false
.
Параметры
$name
(string) — обязательный параметр, название проверяемого размера изображения.
Возвращаемое значение
- bool —
true
, если указанный размер изображения существует, иfalse
, если не существует.
Пример 1: Удаление зарегистрированного размера изображения
Предположим, вы хотите удалить определенный размер изображения, который больше не нужен. Сначала вам нужно проверить, существует ли этот размер, прежде чем его удалить. В следующем примере мы используем функцию has_image_size()
для этой проверки:
add_action('after_setup_theme', 'remove_unwanted_image_size');
function remove_unwanted_image_size() {
if (has_image_size('custom-size')) {
remove_image_size('custom-size');
}
}
В этом примере, если размер custom-size
существует, он будет удален, и WordPress больше не будет генерировать миниатюры этого размера.
Пример 2: Условное добавление нового размера
Вы также можете использовать has_image_size()
для условного добавления нового размера изображения, только если его еще нет:
add_action('after_setup_theme', 'add_custom_image_size_if_not_exists');
function add_custom_image_size_if_not_exists() {
if (!has_image_size('unique-size')) {
add_image_size('unique-size', 250, 250, true); // Создаем новый размер 250x250 с обрезкой
}
}
В этом примере новый размер unique-size
будет добавлен только в том случае, если он еще не зарегистрирован, предотвращая дублирование.
Пример 3: Проверка существования размера изображения перед его использованием
Вы можете использовать функцию has_image_size()
для проверки существования размера перед его использованием в коде. Например, если вы хотите вывести изображение определенного размера в шаблоне, вы можете сделать это следующим образом:
global $post;
$thumbnail_id = get_post_thumbnail_id($post->ID);
$image_size = 'featured-image-size';
if (has_image_size($image_size)) {
$image = image_get_intermediate_size($thumbnail_id, $image_size);
if ($image) {
echo '<img src="' . esc_url($image['url']) . '" alt="" width="' . esc_attr($image['width']) . '" height="' . esc_attr($image['height']) . '" />';
} else {
echo 'Изображение не найдено';
}
} else {
echo 'Размер изображения не зарегистрирован.';
}
В этом примере проверяется, существует ли размер featured-image-size
, прежде чем пытаться вывести изображение. Если размер не существует, выводится соответствующее сообщение.
Заключение
Функция has_image_size()
является полезным инструментом для управления размерами изображений в WordPress. С ее помощью вы можете легко проверять наличие зарегистрированных размеров и принимать соответствующие меры, такие как удаление ненужных размеров или условное добавление новых. Используя приведенные выше примеры, вы сможете эффективно интегрировать эту функцию в вашу тему или плагин, улучшая управление изображениями на вашем сайте.