\SWP_Query
Indice
\SWP_Query un'alternativa a \SearchWP\Query con un paio di importanti differenze:
- Il design e l'implementazione sono modellati su
WP_Query. - Di conseguenza, indipendentemente dalla configurazione di
\SearchWP\Engine, i risultati saranno limitati a\SearchWP\Sourcebasati suWP_Post, ad es. Post, Pagine, Media e Tipi di Post personalizzati.
Utilizzo di base
\SWP_Query può essere utilizzato proprio come faresti (e in alcuni casi sostituito a) WP_Query:
| <?php | |
| //@link https://searchwp.com/documentation/classes/swp_query/ | |
| global $post; | |
| $swp_query = new SWP_Query( [ | |
| 's' => 'coffee', // Search query. | |
| 'engine' => 'default', // Engine name. | |
| ] ); | |
| if ( $swp_query->have_posts() ) { | |
| while ( $swp_query->have_posts() ) : | |
| $swp_query->the_post(); | |
| ?> | |
| <div class="search-result"> | |
| <h3><a href="<?php echo get_permalink(); ?>"> | |
| <?php the_title(); ?> | |
| </a></h3> | |
| <?php the_excerpt(); ?> | |
| </div> | |
| <?php | |
| endwhile; | |
| wp_reset_postdata(); | |
| } else { | |
| ?> | |
| <p>No results found.</p> | |
| <?php | |
| } |
Nota: Ci sono alcune avvertenze in quanto \SWP_Query non ha parità di funzionalità con WP_Query. Si prega di fare riferimento a questa documentazione che delinea quali metodi e proprietà sono disponibili.
Nota anche: Poiché \SWP_Query è stato progettato per essere (per lo più) interoperabile con WP_Query, potrebbero esserci momenti (ad es. quando non c'è il parametro s (query di ricerca)) in cui puoi ripristinare WP_Query per recuperare i tuoi risultati in questo modo:
| <?php | |
| // @link https://searchwp.com/documentation/classes/swp_query/ | |
| global $post; | |
| $args = [ | |
| 's' => get_search_query(), | |
| 'tax_query' => [ [ | |
| 'taxonomy' => 'people', | |
| 'field' => 'slug', | |
| 'terms' => 'bob', | |
| ] ], | |
| ]; | |
| // If a search query is present use SWP_Query | |
| // else fall back to WP_Query | |
| if ( ! empty( $args['s'] ) ) { | |
| $swp_query = new SWP_Query( $args ); | |
| } else { | |
| $swp_query = new WP_Query( $args ); | |
| } | |
| // Loop through results. | |
| if ( $swp_query->have_posts() ) { | |
| while ( $swp_query->have_posts() ) : | |
| $swp_query->the_post(); | |
| ?> | |
| <div class="search-result"> | |
| <h3><a href="<?php echo get_permalink(); ?>"> | |
| <?php the_title(); ?> | |
| </a></h3> | |
| <?php the_excerpt(); ?> | |
| </div> | |
| <?php | |
| endwhile; | |
| wp_reset_postdata(); | |
| } else { | |
| ?> | |
| <p>No results found.</p> | |
| <?php | |
| } |
Argomenti
Quando si istanzia un nuovo \SearchWP\Attribute è possibile fornire un array dei seguenti:
s(string)- Query di ricerca. (predefinito:
'') engine(string)- Nome di
\SearchWP\Engine. (predefinito:'default') posts_per_page(integer)- Numero di post da restituire per pagina. (predefinito:
get_option( 'posts_per_page' )) load_posts(boolean)- Se restituire i risultati come
WP_Post. (predefinito:true) fields(string)- Se restituire
"all"o"ids". (predefinito:"all") nopaging(boolean)- Se disabilitare la paginazione e restituire tutti i risultati. (predefinito:
false) page(integer)- Quale pagina di risultati restituire. (predefinito:
null) paged(integer)- Quale pagina di risultati restituire. (predefinito:
1) post__in(integer[])- Limita il pool di ricerca a questi ID (predefinito:
[]) post__not_in(integer[])- Limita il pool di ricerca a questi ID (predefinito:
[]) post_type(string[])- Limita i risultati a questi Tipi di Post (predefinito:
[]) post_status(string[])- Limita i risultati a questi stati dei post (predefinito:
[]) tax_query([])- Vedi
tax_query(predefinito:[]) meta_query([])- Vedi
meta_query(predefinito:[]) date_query([])- Vedi
date_query(predefinito:[]) order(string)- Restituisci i risultati in ordine
"ASC"o"DESC". (predefinito:"DESC") orderby(string)- Restituisci i risultati ordinati per
"relevance","date"o"rand". (predefinito:"relevance")
Metodi
Nota: Sono disponibili getter e setter magici per le proprietà.
get_search_results()- Aggiorna il set di risultati in base alle proprietà correnti.
get_posts()- Restituisce il set di risultati corrente.
Hook
Sono disponibili numerosi hook per modificare ulteriormente il comportamento di \SWP_Query:

