Intereting Posts
Добавить дополнительные области виджета в тему Получить количество сообщений в названной категории за пределами цикла как эхо / отображать значение настраиваемого поля в конкретном имени настраиваемого поля? .htaccess Выход из системы перенаправления Обход значения nonce при обрыве сообщения Показать изображение рядом с пост-тизерами в Genesis Framework? Отфильтруйте встроенные классы wp_nav_menu, но сохраните пользовательский класс Невозможно получить любые дочерние термины с помощью get_terms Сохранить скидку Woocomerce в процентах к базе данных Глобальная область действия идентификатора транзакции PayPal для пользователя Как ограничить количество сообщений, отображаемых в одном? показать визуальную форму строителя в передней части WordPress.org: Как добавить плагин для определенных стран? Как сделать так, что логотип сайта можно легко изменить без использования настройки? Можно ли отключить параметры выравнивания изображения в редакторе сообщений?

Результаты поиска в WordPress для нескольких типов сообщений

Я хочу показать как posts и attachments в результатах поиска. В принципе, мне нужно что-то, что говорит, if сообщение имеет миниатюру, покажите это. else покажите изображение вложения (поскольку у них нет эскизов и вытаскиваются непосредственно из медиа-библиотеки).

Это то, что я пробовал на search.php , но это не сработало:

 <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <?php echo '<a class="search-item">'; if( has_post_thumbnail() ) { $image_src = the_post_thumbnail( 'custom-size', array( 'class' => "img-style" ) ); } else { $image_src = wp_get_attachment_image_src( 'custom-size', array( 'class' => "img-style" ) ); echo '</a>'; } ?> <?php endwhile; ?> <?php endif; ?> 

Solutions Collecting From Web of "Результаты поиска в WordPress для нескольких типов сообщений"

Функция wp_get_attachment_image_src() ожидает, что вы также передадите какой-либо идентификатор вложения, а также не wp_get_attachment_image() изображения, который нам нужен, вместо этого мы должны использовать wp_get_attachment_image() .

Если сообщение имеет миниатюру сообщения, возьмите его.
ELSE Если сообщение имеет прикрепленные изображения, возьмите первый.
Возможно, ELSE может показать местозаполнитель? Я определил случай else в верхней части цикла как значение по умолчанию.

 if( have_posts() ) { while( have_posts() ) { the_post(); $image_html = ''; // assign placeholder url here? if( has_post_thumbnail() ) { $image_html = get_the_post_thumbnail( $post->ID, 'custom-size', array( 'class' => 'img-style' ) ); } else { // We don't have a thumbnail - grab attachments $media = get_posts( array( 'post_type' => 'attachment', 'posts_per_page' => 1, 'post_status' => 'any', 'post_parent' => $post->ID 'post_mime_type' => array( 'image/jpeg', 'image/gif', 'image/png', 'image/bmp', 'image/tiff', 'image/x-icon' ); ) ); if( ! empty( $media ) ) { $image_html = wp_get_attachment_image( $media[0]->ID, 'cusotm-size', false, array( 'class' => 'img-style' ) ); } } if( ! empty( $image_html ) ) { echo '<a href="'. get_permalink() . '">' . $image_html . '</a>'; } } } 

Заметьте, я не тестировал выше, поэтому не стесняйтесь уточнять его.