Картинка поста в результатах поиска
-
Здравствуйте. Подскажите, как можно вывести картинку записи в результатах поиска ?
В категориях за это отвечает код
<img width="180" src="<?php echo get_post_image(); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" />
но этот код почему-то не срабатывает в результатах поиска. Наверное как-то не правильно вставляю.
Я разобрался, что надо его вставлять куда-то сюда
<?php } else if (is_search()) { ?> <h2 id="post-header">Результаты поиска для " <?php the_search_query(); ?> "</h2> <?php } else if ((is_home()) && ($paged < 1)) { ?>
подскажите пожалуйста, как это правильно сделать ?
спасибо
-
либо еще в каком-то файле, который инклюдиться в index.php (инклюдиться он может не только через include)
вот мой код headline.php
<?php $paged = get_query_var('paged'); ?> <?php if (is_category()) { ?> <h2 id="post-header">Архивы за <?php single_cat_title(); ?></h2> <?php } else if (is_tag()) { ?> <h2 id="post-header">Тег архивов за <?php single_cat_title(); ?></h2> <?php } else if (is_archive()) { ?> <h2 id="post-header"> <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?> <?php /* If this is a category archive */ if (is_day()) { ?> Архивы <?php the_time('F jS, Y'); ?> <?php /* If this is a monthly archive */ } elseif (is_month()) { ?> Архивы <?php the_time('F, Y'); ?> <?php /* If this is a yearly archive */ } elseif (is_year()) { ?> Архивы <?php the_time('Y'); ?> <?php } ?> </h2> <?php } else if (is_single()) { ?> <?php } else if (is_search()) { ?> <h2 id="post-header">Результаты поиска для " <?php the_search_query(); ?> "</h2> <?php } else if ((is_home()) && ($paged < 1)) { ?> <h2 id="post-header">ПОСЛЕДНИЕ СТАТЬИ</h2> <?php } else if ((is_home()) && ($paged > 1)) { ?> <h2 id="post-header">СТАРЫЕ СТАТЬИ</h2> <?php } ?>
а вот индекса
<?php get_header(); ?> <div id="post-entry"> <img src="<?php bloginfo('stylesheet_directory');?>/images/top.png" alt="top-image" /> <?php $postcount = 1; ?> <?php if (have_posts()) : ?> <?php include (TEMPLATEPATH . '/headline.php'); ?> <?php while (have_posts()) : the_post(); ?> <div <?php if(function_exists("post_class")) : ?><?php post_class(); ?><?php else: ?>class="post"<?php endif; ?> id="post-<?php the_ID(); ?>"> <div class="post-meta"> <div class="flag"></div> <div class="meta-title"> <div class="middle"> <h1 class="post-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> </div> </div> <div class="meta-date"> <small><?php the_time('j'); ?></small><br /><?php the_time('M'); ?> </div> </div> <div class="post-author"><strong>автор</strong> <?php the_author_posts_link(); ?> <?php edit_post_link(__('[Edit]')); ?> <strong>рубрики</strong> <?php the_category(', ') ?></div> <div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { ?> <?php the_excerpt(); ?> <?php } else { ?> <?php the_content('...далее'); ?> <?php } ?> </div> <?php } ?> <?php } ?> <div class="post-author"> <?php if(function_exists("the_tags")) : ?> <div class="meta-left"> <?php the_tags(__('<strong>Теги:</strong> '), ', ', ''); ?> </div> <?php endif; ?> <div class="meta-right"> <strong><?php comments_popup_link('0 коммент. »', '1 коммент. »', '% коммент. »'); ?></strong> </div> </div> </div> <?php $postcount++; ?> <?php endwhile; ?> <?php include (TEMPLATEPATH . '/paginate.php'); ?> <?php else: ?> <?php include (TEMPLATEPATH . '/result.php'); ?> <?php endif; ?> <div class="bottom-img"> <img src="<?php bloginfo('stylesheet_directory');?>/images/bottom.png" alt="bottom-img" /> </div> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
надеюсь это хоть как-то прояснить сложившуюся ситуацию
В index.php вместо этого фрагмента кода
<div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { ?> <?php the_excerpt(); ?> <?php } else { ?> <?php the_content('...далее'); ?> <?php } ?> </div>
вставьте этот
<div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { ?> <?php if( is_search() ) the_post_thumbnail();?> <?php the_excerpt(); ?> <?php } else { ?> <?php the_content('...далее'); ?> <?php } ?> </div>
извиняюсь, сейчас посмотрел на хостинге, у меня оказывается немного другой код:
<div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { the_excerpt(); } else { the_content('далее »'); } ?> </div>
как правильно сюда подставить ? заменил код на то, что вы прислали, картинка все равно не появилась (
Вместо этого
<div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { the_excerpt(); } else { the_content('далее »'); } ?> </div>
этот
<div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { if( is_search() && has_post_thumbnail() ) the_post_thumbnail(); the_excerpt(); } else { the_content('далее »'); } ?> </div>
к сожалению опять картинка не появилась. Может быть у меня как-то в блоге отключен thumbnail ?
может попробовать подставить тот код, который выводит картинки в категориях ?
<img width="180" src="<?php echo get_post_image(); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" />
заменил код на то, что вы прислали, картинка все равно не появилась (
Значит либо миниатюры не заданы в записях, которые попадают в результат поиска, либо в поиск не попадают записи, в которых заданы миниатюры )))
у меня в каждом посте есть картинка, первую картинку функция get_post_image возвращает как миниатюрю к посту. на странице категорий это работает стабильно уже более года.
Значит либо миниатюры не заданы в записях
а как это можно проверить ?
А какая у вас версия WordPress стоит?
самая последняя. 3.9.1
Вообщем я не знаю, как еще вот так перепиской на форуме помочь, тут только смотреть надо в код и что у вас в админке и т.д. Если хотите установите себе notepad++ и team viewer (чтобы я мог удаленно на ваш комп сходить), и может удаленно к вам подключусь и посмотрю.
либо вышлите мне полностью ваш сайт (вместе с дампом Sql) мне на e-mail: SvenSoft@mail.ru
сейчас к сожалению нахожусь на даче, сайт сбросить полностью не получиться. под рукой только есть тема. могу ее заархивировать и выслать.
вероятнее всего функция thumbnail у меня не работает по той причине, что при загрузке файлов к постам я не использую встроенный загрузчик, а просто заливаю их на хостинг в нужную мне папку и руками прописываю путь к картинке. такое возможно ?
если да, тогда все становится яснее, почему картинки так и не появились.
как мне кажется, надо в коде
<div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { the_excerpt(); } else { the_content('далее »'); } ?> </div>
вызвать функцию get_post_image, чтобы она вернула первую картинку по коду поста. Вот только как это сделать ?
Попробуйте так
<div class="post-content"> <?php if((is_category()) || (is_archive()) || (is_search())) { if( is_search() ):?> <img width="180" src="<?php echo get_post_image(); ?>" title="<?php the_title(); ?>" alt="<?php the_title(); ?>" /> <?php endif; the_excerpt(); } else { the_content('далее »'); } ?> </div>
ПОЛУЧИЛОСЬ !!! SvenSoft, спасибо большое за помощь и потраченное на меня время.
- Тема «Картинка поста в результатах поиска» закрыта для новых ответов.