У меня есть сайт с несколькими пользовательскими типами сообщений. Когда клиент выполняет поиск, он показывает комбинацию всех разных сообщений. Я хотел бы сегментировать их на одной странице, чтобы получилось что-то похожее на пример ниже. Любая помощь будет оценена по достоинству.
Показаны результаты для: действительно классный поиск
Централизованное управление видео
. Radius предлагает возможность интерактивной карты и поддержку нескольких мониторов. Предназначен для среды с несколькими мониторами… http://openeye.net/products/software/video-management
Записи в базе знаний: централизованный
ремонт вашего устройства
. Radius предлагает возможность интерактивной карты и поддержку нескольких мониторов. Предназначен для среды с несколькими мониторами… http://openeye.net/?faq=video-management-repair
Пример моего цикла из loop-search.php
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h4 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h4>
<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
<div class="entry-summary">
<?php the_post_thumbnail; ?>
<?php if (function_exists('relevanssi_the_excerpt')) { relevanssi_the_excerpt(); }; ?>
<a href="<?php the_permalink(); ?>"><?php the_permalink(); ?></a>
</div><!-- .entry-summary -->
<?php else : ?>
<div class="entry-content">
<?php the_post_thumbnail; ?>
<?php the_content( __( 'Continue reading', 'twentyten' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
<a href="<?php the_permalink(); ?>"><?php the_permalink(); ?></a>
</div><!-- .entry-content -->
<?php endif; ?>
мои изменения в search.php
<?php if ( have_posts() ) : $posts_per_page = 20; ?>
<span style="font-size:18px;" class="page-title"><?php printf( __( 'Showing results for: %s', 'twentyten' ), '<span>' . get_search_query() . '</span>' ); ?></span>
<?php
/* Run the loop for the search to output the results.
* If you want to overload this in a child theme then include a file
* called loop-search.php and that will be used instead.
*/
get_template_part( 'loop', 'search' );
?>
<?php else : ?>
<div id="post-0" class="post no-results not-found">
<h2 class="entry-title"><?php _e( 'Nothing Found', 'twentyten' ); ?></h2>
<div class="entry-content">
<?php if (function_exists('relevanssi_didyoumean')) {
relevanssi_didyoumean(get_search_query(), "<p>Sorry, but nothing matched your search criteria. Please try again with some different keywords. Or you can also try ", "</p>", 5);
}?>
<?php related_searches(); ?>
</div><!-- .entry-content -->
</div><!-- #post-0 -->
<?php endif; ?>
Я искал то же самое и нашел кое-что интересное на сайте relevanssi. Вы можете найти это здесь Разделение сообщений по типам сообщений На самом деле я не могу заставить это работать, но, надеюсь, это лучшее решение с использованием Relevanssi.
Кажется, у меня возникли проблемы с тем, чтобы это работало, оно не возвращает никаких данных из цикла. Я использую Relevanssi, но не думаю, что это повлияет на мою петлю. Я обновлю пост с тем, что я делаю со своей стороны. Еще раз спасибо Баинтернет!
Зак, есть новости о том, как это работает? Я ищу что-то очень похожее, и я также использую Relevanssi.
Я смог заставить это работать — спасибо Bainternet!
Когда я использую ваш групповой код, я получаю только один результат каждого типа сообщений.
Вы можете группировать посты по типу с помощью
posts_groupby
хука-фильтра:Затем в вашем цикле сделайте что-то вроде этого:
Просто хотел добавить, что, хотя решение @bainternet, за которое проголосовали, отличное, оно может нарушить функцию поиска в медиатеке. Эта проблема и простое решение представлены здесь.
Простое решение состоит в том, чтобы добавить это условное выражение вокруг приведенного выше кода:
У меня это сработало после небольшой настройки приведенного выше решения. Сначала необходимо изменить фильтр, чтобы получить более 1 результата:
Затем петлю пришлось немного подправить. Я хотел по-разному стилизовать свои результаты с различной информацией, поэтому я добавил еще одно условие.
По сути, единственные изменения — это фильтр и закрывающий div, который был опущен в конце. Это и «Результаты не найдены». Это работает на моем сайте.