• Здравствуйте. Подскажите, как можно вывести картинку записи в результатах поиска ?

    В категориях за это отвечает код

    <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">Результаты поиска для &quot; <?php the_search_query(); ?> &quot;</h2>
    
    <?php } else if ((is_home()) && ($paged < 1)) { ?>

    подскажите пожалуйста, как это правильно сделать ?

    спасибо

Просмотр 15 ответов — с 16 по 30 (всего 30)
  • либо еще в каком-то файле, который инклюдиться в 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">Результаты поиска для &quot; <?php the_search_query(); ?> &quot;</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(); ?>&nbsp;&nbsp;&nbsp;&nbsp;<?php edit_post_link(__('[Edit]')); ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>&nbsp;'), ', ', ''); ?>
    </div>
    <?php endif; ?>
    
    <div class="meta-right">
    <strong><?php comments_popup_link('0 коммент. &raquo;', '1 коммент. &raquo;', '% коммент. &raquo;'); ?></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, спасибо большое за помощь и потраченное на меня время.

Просмотр 15 ответов — с 16 по 30 (всего 30)
  • Тема «Картинка поста в результатах поиска» закрыта для новых ответов.