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

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

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

Создай свой первый сайт на WordPress

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

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

    <code><?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() ? rel="nofollow ugc">"><?php the_post_thumbnail(); ?></a>
    						</div>
    						<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ? rel="nofollow ugc">" 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() ? rel="nofollow ugc">"><?php the_post_thumbnail(); ?></a>
    						</div>
    						<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ? rel="nofollow ugc">" 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(); ?></code>
    Ответить
  2. wikikino автор

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

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

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

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

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

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

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

    Ответить
×
WordPress:
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙