Raggruppa i Risultati della Ricerca Live per Categoria
Personalizzazione della visualizzazione dei risultati per la Live Search Extension di SearchWP è stata progettata per facilitare la personalizzazione in qualsiasi modo desideri. Se, ad esempio, desideri raggruppare i tuoi risultati per categoria di post, puoi usarlo come punto di partenza nel tuo modello di risultati personalizzato:
| <?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 | |
| } | |
| } |

