SearchWP Documentation

Visualizza la guida all'installazione, sfoglia la Knowledge Base, scopri i numerosi hook di SearchWP

Visualizza Origini Personalizzate (es. Utenti) nei Risultati della Ricerca Live

Per impostazione predefinita, la Ricerca Live utilizzerà il tuo Motore Predefinito, limitato a Fonti basate su oggetti WP_Post (es. Articoli, Pagine, Tipi di Post Personalizzati, ecc.)

Possiamo usare l'hook searchwp_live_search_get_search_form_engine per usare un Motore Supplementare per i risultati della Ricerca Live, ma nello stesso modo in cui abbiamo bisogno di usare un template personalizzato per i risultati di un Motore Supplementare, abbiamo bisogno di usare un template personalizzato per i risultati della Ricerca Ajax Live se vogliamo mostrare risultati da una Fonte personalizzata.

La Ricerca Ajax Live di SearchWP ha una struttura del template che possiamo utilizzare per visualizzare i risultati delle nostre Fonti personalizzate.

In questo esempio creeremo un template per i risultati della Ricerca Ajax Live che tiene conto degli Utenti dal nostro Motore supplementare:

Screenshot della configurazione del Motore

In questo sito di esempio abbiamo un Utente con nome utente 'coffeefan' e nome visualizzato 'Jane Doe':

Screenshot degli Utenti

Quando cerchiamo coffee usando la Ricerca Ajax Live, il nostro template personalizzato per i risultati includerà quel risultato e un altro Articolo sul caffè:

Risultato Utente

Per implementare questo template personalizzato per i risultati della Ricerca Live, possiamo creare una cartella searchwp-live-ajax-search nella directory del nostro tema, e all'interno di quella cartella creare un file search-results.php con questo codice:

<?php
// Execute a search using our supplemental SearchWP Engine.
// @link https://searchwp.com/documentation/knowledge-base/custom-source-results-live-search/
$search_query = isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ) : null;
$search_results = [];
if ( ! empty( $search_query ) && class_exists( '\\SearchWP\\Query' ) ) {
$searchwp_query = new \SearchWP\Query( $search_query, [
'engine' => 'supplemental', // The Engine name.
'fields' => 'all', // Load proper native objects of each result.
] );
$search_results = $searchwp_query->get_results();
}
?>
<?php if ( ! empty( $search_query ) && ! empty( $search_results ) ) : ?>
<?php foreach ( $search_results as $search_result ) : ?>
<?php
switch( get_class( $search_result ) ) {
case 'WP_Post':
?>
<div class="searchwp-live-search-result" role="option" id="" aria-selected="false">
<p><a href="<?php echo esc_url( get_permalink( $search_result->ID ) ); ?>">
<?php echo get_the_title( $search_result->ID ); ?> &raquo;
</a></p>
</div>
<?php
break;
case 'WP_User':
?>
<div class="searchwp-live-search-result" role="option" id="" aria-selected="false">
<p><a href="<?php echo get_author_posts_url( $search_result->data->ID ); ?>">
<?php echo esc_html( $search_result->data->display_name ); ?> &raquo;
</a></p>
</div>
<?php
break;
}
?>
<?php endforeach; ?>
<?php else : ?>
<p class="searchwp-live-search-no-results" role="option">
<em><?php esc_html_e( 'No results found.', 'swplas' ); ?></em>
</p>
<?php endif; ?>

Questo template per i risultati può essere personalizzato come desideri, visualizzando vari attributi di ciascun tipo di risultato come determinato dall'istruzione switch.

Crea Oggi Stesso una Migliore Esperienza di Ricerca WordPress

Non perdere mai più visitatori a causa di risultati di ricerca inutili. SearchWP rende la creazione della tua ricerca intelligente WordPress veloce e facile.

Get SearchWP Now
Icona di motori di ricerca multipli