Live-Suchergebnisse nach Kategorie gruppieren
Die Anzeige der Ergebnisse für SearchWPs Live Search Extension wurde so konzipiert, dass sie auf jede gewünschte Weise angepasst werden kann. Wenn Sie beispielsweise Ihre Ergebnisse nach Beitrags-Kategorie gruppieren möchten, können Sie dies als Ausgangspunkt in Ihrer benutzerdefinierten Ergebnisvorlage verwenden:
| <?php if ( ! have_posts() ) : ?> | |
| <p>No results</p> | |
| <?php return; endif;?> | |
| <?php | |
| global $post; | |
| $grouped_results = []; | |
| $no_term_results = []; | |
| while ( have_posts() ) { | |
| the_post(); | |
| $categories = get_the_terms( $post, 'category' ); | |
| // Group by the first Category returned. | |
| if ( ! empty( $categories ) && isset( $categories[0] ) ) { | |
| // If this group doesn't exist yet, create it. | |
| if ( ! array_key_exists( $categories[0]->term_id, $grouped_results ) ) { | |
| $grouped_results[ $categories[0]->term_id ] = [ | |
| 'term' => $categories[0], | |
| 'results' => [], | |
| ]; | |
| } | |
| // Add this result to the group. | |
| $grouped_results[ $categories[0]->term_id ]['results'][ $post->ID ] = get_post( $post->ID ); | |
| } else { | |
| $no_term_results[ $post->ID ] = get_post( $post->ID ); | |
| } | |
| } | |
| // Output grouped results. | |
| if ( ! empty( $grouped_results ) ) { | |
| foreach ( $grouped_results as $grouped_result ) { | |
| echo '<h3>' . esc_html( $grouped_result['term']->name ) . '</h3>'; | |
| foreach ( $grouped_result['results'] as $result ) { | |
| ?> | |
| <div class="searchwp-live-search-result" role="option" id="" aria-selected="false"> | |
| <p> | |
| <a href="<?php echo esc_url( get_permalink( $result->ID ) ); ?>"> | |
| <?php echo wp_kses_post( get_the_title( $result->ID ) ); ?> » | |
| </a> | |
| </p> | |
| </div> | |
| <?php | |
| } | |
| } | |
| } | |
| // Output ungrouped results. | |
| if ( ! empty( $no_term_results ) ) { | |
| foreach ( $no_term_results as $result ) { | |
| ?> | |
| <div class="searchwp-live-search-result" role="option" id="" aria-selected="false"> | |
| <p> | |
| <a href="<?php echo esc_url( get_permalink( $result->ID ) ); ?>"> | |
| <?php echo wp_kses_post( get_the_title( $result->ID ) ); ?> » | |
| </a> | |
| </p> | |
| </div> | |
| <?php | |
| } | |
| } |

