Intereting Posts
Как искать в поле, в котором хранятся строки с экранированием? Как сделать недавно зарегистрированный сайт в многопользовательской сети «вживую» только тогда, когда пользователь готов Как показать количество комментариев о похожих сообщениях? Как получить скриншот темы Динамический контент из другого БД с пользовательским URL Почему мои текстовые сообщения всегда возвращают одни и те же результаты? Рекомендовать плагины для веб-сайта только для электронной коммерции WordPress так медленно загружается на MAMP wp_enqueue_scripts в классе плагина Две полосы прокрутки во всплывающем окне Синхронизировать контент на нескольких страницах? Пользовательские поля и производительность Удалить форму и URL утерянного пароля Как управлять типом сообщений Posts и вообще интересно о структуре данных WP Подсветка меню загрузки Bootstrap 3 и WordPress

Можно ли вытащить и отобразить одно изображение, ориентированное на ландшафт?

Я хотел знать, возможно ли это. Я прошел через много потоков в Интернете для этого, и, похоже, не было ни одного хорошего решения. Я запускаю бизнес-сайт на основе wordpress, и теперь есть это своеобразное требование, в котором мне нужен хак / код для вытягивания и отображения одного изображения (из числа других изображений, загруженных / прикрепленных к этому сообщению).

Теперь сложная часть состоит в том, что изображение должно быть только горизонтально / ландшафтно ориентированным изображением. И если он не находит ландшафтного изображения, он ничего не может вернуть. Пожалуйста, дайте мне знать, если вам нужно больше разъяснений.

Если вы знаете, у меня уже есть изображение.

Функция для получения ориентированного на ландшафт изображения

 function wpse_96012_landscape_image() { /* global post object holding info about the current post */ global $post; /* grab all images attached to the current post */ $attached_images = get_children( array( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image' ) ); /* set minimum ratio between width / height, change to your liking */ $minimum_aspect_ratio = 1.2; /* * iterate over attachments * get size, compare width & height * stop execution if an image with "landscape" dimensions is found */ foreach( $attached_images as $image ) { $url = wp_get_attachment_url( $image->ID ); $size = getimagesize( $url ); if ( $size[0] >= ( $size[1] * $minimum_aspect_ratio ) ) { return $url; } } return false; } 

Позднее использование

Вышеуказанная функция вернет URL первого изображения с соотношением сторон выше или равным установленному минимуму или false если ни один не найден.

Следовательно, если вы хотите вывести изображение с условием наличия одного, вот как вы это сделаете:

 $landscape_image_url = wpse_96012_landscape_image(); if ( $landscape_image_url ) { echo '<img alt="landscape image" src="' . $landscape_image_url . '" />'; } 

Рекомендации

  • get_children (WP)
  • getimagesize (PHP)