Вывод результатов поиска с группировкой постов по категориям

На моём сайте на WP понадобилось модернизировать поиск так, чтобы выдача найденного показывалась по категориям. То есть, если искомая фраза наблюдается в разных новостях, а эти новости расположены в разных категориях, то необходимо вывести следующим образом:

[img]http://wikikino.com/wp-content/uploads/2012/03/poisk.png[/img]

Как реализовать подобный вывод результатов посика?

wikikino
Оцените автора
Добавить комментарий

  1. Примерный код search.php с группировкой по категориям:

    <?php
    get_header(); ?>
    <div class="content">
    			<?php
    				$s = get_search_query();
    			?>
    	<div class="search">
    		<div class="categoryThumbs">
    		<?php if (have_posts()) : ?>
    			<h3><?php printf( __( 'Search Results for: %s'), '<span>' . get_search_query() . '</span>' ); ?></h3>
    		<?php endif;?>
    			<?php query_posts("s='$s'&category_name=blog"); ?>
    				<?php if (have_posts()) : ?>
    					<?php $blogResults=0; ?>
    				<?php while (have_posts()) : the_post(); ?>
    					<?php
    						$blogResults++;
    					?>
    				<?php endwhile; ?>
    					<h4><?php echo $blogResults; ?> Results in BLOG</h4>
    					<?php while (have_posts()) : the_post(); ?>
    					<div class="films">
    						<div class="thumb">
    							<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>
    						</div>
    						<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
    						<div class="entry">
    							<?php the_excerpt() ?>
    						</div>
    					</div>
    					<?php endwhile; ?>
    				<?php endif;?>
    				<?php query_posts("s='$s'&category_name=films"); ?>
    				<?php if (have_posts()) : ?>
    					<?php $blogResults=0; ?>
    				<?php while (have_posts()) : the_post(); ?>
    					<?php
    						$blogResults++;
    					?>
    				<?php endwhile; ?>
    					<h4><?php echo $blogResults; ?> Results in Films</h4>
    					<?php while (have_posts()) : the_post(); ?>
    					<div class="films">
    						<div class="thumb">
    							<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>
    						</div>
    						<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
    						<div class="entry">
    							<?php the_excerpt() ?>
    						</div>
    					</div>
    					<?php endwhile; ?>
    				<?php endif;?>
    		<div class="spacer"></div>
    		</div>
    	</div>
    </div>
    <?php get_footer(); ?>

    Взято отсюда — http://wordpress.org/support/topic/separate-search-results-by-category

    Ответить
  2. wikikino автор

    Спасибо Вам огромнейшее! Давно пытался это осуществить :)

    Ответить
  3. wikikino автор

    А вы не подскажите, как можно сделать постраничную навигацию каждой категории в выводе поиска без перезагрузки всей страницы?
    Хочется примерно что-то такое:
    Поиск

    Ответить
    1. wikikino автор

      В дополнение к предыдущему посту:
      Или..можно сделать так, чтобы выводились все посты на одной странице?

      Ответить
  4. wikikino автор

    Извините за большое количество вопросов.. Получилось вывести все результаты поиска на одной странице.
    Подскажите пожалуйста, а как можно сделать видимыми только часть из них, чтобы остальные были доступны по ссылке «Показать все» ?

    Ответить