\SWP_Query
Inhaltsverzeichnis
\SWP_Query eine Alternative zu \SearchWP\Query mit einigen wichtigen Unterschieden:
- Das Design und die Implementierung sind nach
WP_Querymodelliert. - Infolgedessen werden die Ergebnisse, unabhängig von der
\SearchWP\Engine-Konfiguration, auf\SearchWP\Sources beschränkt, die aufWP_Postbasieren, z. B. Beiträge, Seiten, Medien und benutzerdefinierte Beitragstypen.
Grundlegende Verwendung
\SWP_Query kann genauso verwendet werden wie (und in einigen Fällen anstelle von) 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 | |
| } |
Hinweis: Es gibt einige Vorbehalte, da \SWP_Query keine Funktionsgleichheit mit WP_Query hat. Bitte beachten Sie diese Dokumentation, die beschreibt, welche Methoden und Eigenschaften Ihnen zur Verfügung stehen.
Beachten Sie auch: Da \SWP_Query so konzipiert wurde, dass es (größtenteils) mit WP_Query interoperabel ist, kann es vorkommen (z. B. wenn kein s (Suchanfrage)-Parameter vorhanden ist), dass Sie WP_Query wieder verwenden können, um Ihre Ergebnisse wie folgt abzurufen:
| <?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 | |
| } |
Argumente
Beim Instanziieren eines neuen \SearchWP\Attribute kann ein Array der folgenden Elemente bereitgestellt werden:
s(string)- Suchanfrage. (Standard:
'') engine(string)\SearchWP\Engine-Name. (Standard:'default')posts_per_page(integer)- Anzahl der pro Seite zurückzugebenden Beiträge. (Standard:
get_option( 'posts_per_page' )) load_posts(boolean)- Ob Ergebnisse als
WP_Posts zurückgegeben werden sollen. (Standard:true) fields(string)- Ob
"all"oder"ids"zurückgegeben werden sollen. (Standard:"all") nopaging(boolean)- Ob die Paginierung deaktiviert und alle Ergebnisse zurückgegeben werden sollen. (Standard:
false) page(integer)- Welche Seite der Ergebnisse zurückgegeben werden soll. (Standard:
null) paged(integer)- Welche Seite der Ergebnisse zurückgegeben werden soll. (Standard:
1) post__in(integer[])- Suchpool auf diese IDs beschränken (Standard:
[]) post__not_in(integer[])- Suchpool auf diese IDs beschränken (Standard:
[]) post_type(string[])- Ergebnisse auf diese Beitragstypen beschränken (Standard:
[]) post_status(string[])- Ergebnisse auf diese Beitragstatus beschränken (Standard:
[]) tax_query([])- Siehe
tax_query(Standard:[]) meta_query([])- Siehe
meta_query(Standard:[]) date_query([])- Siehe
date_query(Standard:[]) order(string)- Ergebnisse in
"ASC"oder"DESC"Reihenfolge zurückgeben. (Standard:"DESC") orderby(string)- Ergebnisse sortiert nach
"relevance","date"oder"rand"zurückgeben. (Standard:"relevance")
Methoden
Hinweis: Es sind magische Getter und Setter für Eigenschaften verfügbar.
get_search_results()- Ergebnis-Set basierend auf aktuellen Eigenschaften aktualisieren.
get_posts()- Gibt das aktuelle Ergebnis-Set zurück.
Hooks
Es gibt eine Reihe von Hooks, die das Verhalten von \SWP_Query weiter modifizieren können:

