Ergebnisse auf einen bestimmten Taxonomiebegriff (Kategorie, Schlagwort usw.) beschränken
Inhaltsverzeichnis
Auf native/Standard-Suchergebnisse anwenden
Wenn Sie anstatt ein Suchformular zu erstellen, um die Auswahl einer Kategorie (oder eines anderen Taxonomiebegriffs) zu ermöglichen, stattdessen Folgendes tun möchten:
Begrenzen Sie Ihre nativen/Standard-Suchergebnisse immer auf eine bestimmte Kategorie. Wir können dazu ein \SearchWP\Mod wie folgt verwenden:
| <?php | |
| // Limit SearchWP Native/Default results to Category that has 'foobar' slug. | |
| add_filter( 'searchwp\native\args', function( $args, $query ) { | |
| if ( ! isset( $args['tax_query'] ) || ! is_array( $args['tax_query'] ) ) { | |
| $args['tax_query'] = []; | |
| } | |
| $args['tax_query'][] = [ | |
| 'taxonomy' => 'category', | |
| 'field' => 'slug', | |
| 'terms' => 'foobar', | |
| ]; | |
| return $args; | |
| }, 20, 2 ); |
Beachten Sie, dass dieser \SearchWP\Mod für alle nativen/Standard-Suchen gilt.
Programmatische Suchanfrage
Wenn Sie anstatt ein Suchformular zu erstellen, um die Auswahl einer Kategorie (oder eines anderen Taxonomiebegriffs) zu ermöglichen, stattdessen Folgendes tun möchten:
Begrenzen Sie eine Suchanfrage programmatisch immer auf einen bestimmten Taxonomiebegriff (in diesem Fall Kategorie)
Wir können den Parameter tax_query von SWP_Query wie folgt verwenden:
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // Limit SearchWP results to Category that has 'foobar' slug. | |
| $search = new \SWP_Query( [ | |
| 's' => 'coffee', // Search string. | |
| 'tax_query' => [ [ | |
| 'taxonomy' => 'category', | |
| 'field' => 'slug', | |
| 'terms' => 'foobar', | |
| ] ], | |
| ] ); | |
| // Print all results. | |
| print_r( $search->posts ); |
Die tax_query kann mehrere Bedingungen auf die gleiche Weise verarbeiten, wie WP_Query funktioniert.

