Intereting Posts
WordPress и безопасность Автоматически обрезать изображение в div Как я могу динамически обновлять класс в моем коротком коде? Как получить некоторые данные из базы данных WordPress с помощью WordPress $ wpdb Query? Есть ли крючок / действие, которое запускается при добавлении или удалении миниатюры сообщений? Веб-сайт полностью запутывается при выходе из системы Редактирование файлов тем и доступа к страницам кода только для супер-администратора? Обновить мета-значение сообщения как разность дат между двумя полями Предотвратите WordPress от аббревиатуры-long-slugs … -in-the-admin Предоставляет ли balanceTags () какие-либо возможности экранирования / защиты? Как связать многоязычные продукты с WP All Import (+ Polylang)? WordPress и Git – Какие папки я должен отслеживать? Имеет ли WP глобальный идентификатор $ id? Как получить тип архива, будь то пост или дата или архив категорий? Кто-нибудь сталкивается с скрытыми пользователями WordPress (MultiSite) (возможно, взломан)?

Получить URL, ширину и высоту изображения, где ширина и высота указаны как минимум

Возможно ли получить URL, высоту и ширину изображения, где высота и ширина как минимум определяют размер, который я указываю?

wp_get_attachment_image_src() почти делает это, но не совсем, захватывает вместо этого изображение, где либо одна из высоты или ширины, как минимум, определяет размер.

пример

Например, это -> wp_get_attachment_image_src(get_the_ID(), array(208,208)); вернет эти результаты –

 array ( 0 => 'http://localhost/wp-content/uploads/2014/04/image-name-300x168.jpg', 1 => 208, 2 => 116, 3 => true, ) 

Как вы можете видеть, высота меньше 208, поэтому, когда я показываю изображение с использованием этих атрибутов, он растягивается.

поэтому в случае вышеизложенного я фактически потребовал бы, чтобы WP нашел следующее изображение размера и вернул эти результаты –

 array ( 0 => 'http://localhost/wp-content/uploads/2014/04/image-name-672x372.jpg', 1 => 376, 2 => 208, 3 => true, ) 

Естественно, я не просто хочу захватить оригинальное (таким образом, самое большое) изображение, так как это будет излишне потреблять полосу пропускания и замедлять загрузку страницы.

Задний план

В случае, если вам интересно, почему я требую этого, я показываю 4x изображения подряд в квадратном контейнере (208×208). Изображения расположены как по горизонтали, так и по вертикали, и мне нужны изображения, чтобы заполнить контейнер, будучи как можно меньше.

Код

 <?php if($this->items->have_posts()) : while($this->items->have_posts()) : $this->items->the_post(); $last = ($this->is_last_on_line()) ? 'last' : false; $media_preview = wp_get_attachment_image_src(get_the_ID(), array(208,208)); $sizing = ($media_preview[1] >= $media_preview[2]) ? 'height="208"' : 'width="208"'; ?> <div id="post-<?php the_ID(); ?>" class="preview-container <?php echo $last; ?>"> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <img src="<?php echo $media_preview[0]; ?>" <?php echo $sizing; ?> /> </a> </div> <?php endwhile; endif; wp_reset_query(); 

Solutions Collecting From Web of "Получить URL, ширину и высоту изображения, где ширина и высота указаны как минимум"

Если у вас размер квадратного контейнера перед рукой, как вы, 208x208px, то почему бы просто не добавить размер пользовательского изображения в свой файл функций и назвать этот размер изображения в вашем шаблоне.

Добавьте это в свои темы functions.php:

 add_image_size( 'custom-size', 208, 208, true ); 

если вы используете WordPress 3.9, вы можете использовать обрезку, чтобы вы могли использовать ее следующим образом:

 add_image_size( 'custom-size', 220, 220, array( 'center', 'center' ) ); 

Затем назовите его в файле шаблона:

 $media_preview = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'custom-size') );