alleyinteractive / alleyinteractive/searchpress

Facet query var helper doesn't support 3+ terms

Offen
#82 0 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @mboynes Auf GitHub ansehen
Faceting
Vorherrschende Sprache
PHP
Sterne
85
Forks
10
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### Basic example

```php
add_filter( 'sp_search_wp_query_args', function( $wp_args ) {
$wp_args['facets'] = [
'Category' => [
'type' => 'taxonomy',
'taxonomy' => 'category',
'count' => 10,
],
];

return $wp_args;
} );
```

When outputting the facets, e.g. as links, the `query_vars` entry in the processed facet data contains the query vars needed to generate a link to filter the results:

```php
$facet_data = SP_Integration()->search_obj->get_facet_data();
if ( ! empty( $facet_data['Category']['items'] ) ) :
foreach ( $facet_data['Category']['items'] as $cat ) :
?>






  • tax_query->queries`. It's important to note that union queries (`?taxonomy=term1+term2`) will add multiple arrays to `$GLOBALS['wp_query']->tax_query->queries`, whereas intersection queries (`?taxonomy=term1,term2`) will add multiple terms a single array entry. Here's a `var_export()` dump illustrating this:

    ```
    ?s=markup&category_name=antiquarianism,aciform
    $GLOBALS['wp_query']->tax_query->queries
    array (
    0 =>
    array (
    'taxonomy' => 'category',
    'terms' =>
    array (
    0 => 'antiquarianism',
    1 => 'aciform',
    ),
    'field' => 'slug',
    'operator' => 'IN',
    'include_children' => true,
    ),
    )

    ‌‌?s=markup&category_name=antiquarianism+aciform
    $GLOBALS['wp_query']->tax_query->queries
    array (
    0 =>
    array (
    'taxonomy' => 'category',
    'terms' =>
    array (
    0 => 'antiquarianism',
    ),
    'field' => 'slug',
    'operator' => 'IN',
    'include_children' => true,
    ),
    1 =>
    array (
    'taxonomy' => 'category',
    'terms' =>
    array (
    0 => 'aciform',
    ),
    'field' => 'slug',
    'operator' => 'IN',
    'include_children' => true,
    ),
    )
    ```

    In addition, it looks like we're not fully accounting for union queries when building the query var arrays in the facet data. [Relevant code in core](https://github.com/WordPress/WordPress/blob/564d6a0c909af6d09bd91b7725587bf715cc8b1b/wp-includes/class-wp-query.php#L1103-L1114) to mimic for consistency.

    Beitragsleitfaden

    Beitragsleitfaden öffnen

    Bewertung

    Dieses Issue wurde noch nicht bewertet.

    Neue Issues direkt in Ihr Postfach

    Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.