\SWP_Query
Table des matières
\SWP_Query une alternative à \SearchWP\Query avec quelques différences importantes :
- La conception et l'implémentation sont basées sur
WP_Query. - En conséquence, indépendamment de la configuration de
\SearchWP\Engine, les résultats seront limités aux\SearchWP\Sources basés surWP_Post, par exemple les Articles, les Pages, les Médias et les Types d'articles personnalisés.
Utilisation de base
\SWP_Query peut être utilisé comme vous le feriez (et dans certains cas, en remplacement de) 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 | |
| } |
Note : Il y a quelques mises en garde car \SWP_Query n'a pas la parité des fonctionnalités avec WP_Query. Veuillez vous référer à cette documentation qui décrit les méthodes et propriétés qui vous sont disponibles.
Notez également : Comme \SWP_Query a été conçu pour être (principalement) interopérable avec WP_Query, il peut y avoir des moments (par exemple, lorsqu'il n'y a pas de paramètre s (requête de recherche)) où vous pouvez réutiliser WP_Query pour récupérer vos résultats comme ceci :
| <?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 | |
| } |
Arguments
Lors de l'instanciation d'un nouvel \SearchWP\Attribute, un array des éléments suivants peut être fourni :
s(string)- Requête de recherche. (défaut :
'') engine(string)- Nom de
\SearchWP\Engine. (défaut :'default') posts_per_page(integer)- Nombre d'articles à retourner par page. (défaut :
get_option( 'posts_per_page' )) load_posts(boolean)- Indique s'il faut retourner les résultats sous forme de
WP_Posts. (défaut :true) fields(string)- Indique s'il faut retourner
"all"ou"ids". (défaut :"all") nopaging(boolean)- Indique s'il faut désactiver la pagination et retourner tous les résultats. (défaut :
false) page(integer)- Quelle page de résultats retourner. (défaut :
null) paged(integer)- Quelle page de résultats retourner. (défaut :
1) post__in(integer[])- Limiter le pool de recherche à ces identifiants (défaut :
[]) post__not_in(integer[])- Limiter le pool de recherche à ces identifiants (défaut :
[]) post_type(string[])- Limiter les résultats à ces types de publication (par défaut :
[]) post_status(string[])- Limiter les résultats à ces statuts de publication (par défaut :
[]) tax_query([])- Voir
tax_query(par défaut :[]) meta_query([])- Voir
meta_query(par défaut :[]) date_query([])- Voir
date_query(par défaut :[]) order(string)- Retourner les résultats dans l'ordre
"ASC"ou"DESC". (par défaut :"DESC") orderby(string)- Retourner les résultats triés par
"relevance","date"ou"rand". (par défaut :"relevance")
Méthodes
Note : Il existe des getters et setters magiques disponibles pour les propriétés.
get_search_results()- Mettre à jour l'ensemble des résultats en fonction des propriétés actuelles.
get_posts()- Retourne l'ensemble des résultats actuels.
Hooks
Il existe un certain nombre de hooks disponibles pour modifier davantage le comportement de \SWP_Query :

