\SWP_Query
Tabla de contenidos
\SWP_Query una alternativa a \SearchWP\Query con un par de diferencias importantes:
- El diseño e implementación están modelados según
WP_Query. - Como resultado, independientemente de la configuración de
\SearchWP\Engine, los resultados se limitarán a\SearchWP\Sources basados enWP_Post, por ejemplo, Entradas, Páginas, Medios y Tipos de Entrada Personalizados.
Uso básico
\SWP_Query se puede usar tal como lo haría (y en algunos casos se puede sustituir para usar) 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: Hay algunas advertencias, ya que \SWP_Query no tiene paridad de características con WP_Query. Consulte esta documentación que describe qué métodos y propiedades están disponibles para usted.
Tenga en cuenta también: Dado que \SWP_Query fue diseñado para ser (en su mayoría) interoperable con WP_Query, puede haber ocasiones (por ejemplo, cuando no hay un parámetro s (consulta de búsqueda)) en las que pueda volver a usar WP_Query para recuperar sus resultados de la siguiente manera:
| <?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 | |
| } |
Argumentos
Al instanciar un nuevo \SearchWP\Attribute se puede proporcionar una array de los siguientes:
s(string)- Consulta de búsqueda. (predeterminado:
'') engine(string)- Nombre de
\SearchWP\Engine. (predeterminado:'default') posts_per_page(integer)- Número de entradas a devolver por página. (predeterminado:
get_option( 'posts_per_page' )) load_posts(boolean)- Si se deben devolver resultados como
WP_Posts. (predeterminado:true) fields(string)- Si se deben devolver
"all"o"ids". (predeterminado:"all") nopaging(boolean)- Si se debe deshabilitar la paginación y devolver todos los resultados. (predeterminado:
false) page(integer)- Qué página de resultados devolver. (predeterminado:
null) paged(integer)- Qué página de resultados devolver. (predeterminado:
1) post__in(integer[])- Limitar el grupo de búsqueda a estos IDs (predeterminado:
[]) post__not_in(integer[])- Limitar el grupo de búsqueda a estos IDs (predeterminado:
[]) post_type(string[])- Limitar resultados a estos Tipos de Publicación (por defecto:
[]) post_status(string[])- Limitar resultados a estos Estados de Publicación (por defecto:
[]) tax_query([])- Ver
tax_query(por defecto:[]) meta_query([])- Ver
meta_query(por defecto:[]) date_query([])- Ver
date_query(por defecto:[]) order(string)- Devolver resultados en orden
"ASC"o"DESC". (por defecto:"DESC") orderby(string)- Devolver resultados ordenados por
"relevance","date"o"rand". (por defecto:"relevance")
Métodos
Nota: Hay 'magic getters' y 'setters' disponibles para las propiedades.
get_search_results()- Actualizar el conjunto de resultados según las propiedades actuales.
get_posts()- Devuelve el conjunto de resultados actual.
Hooks
Hay una serie de 'hooks' disponibles para modificar aún más el comportamiento de \SWP_Query:

