Czy jest sposób na użycie $query->set('tax_query', ...)
w pre_get_posts
filtrze? na przykład następny kod nie zmienia zapytania. Pamiętaj, że tworzę taksonomie $ i niestandardowe wyszukiwanie.
function custom_search_filter($query) {
...
// array('taxonomy' => 'category', 'field' => 'id', 'terms' => array( 41,42 ), 'operator' => 'IN')
$taxonomies = implode(',', $taxonomy_arr);
// /wordpress/25076/how-to-filter-wordpress-search-excluding-post-in-some-custom-taxonomies
$taxonomy_query = array('relation' => 'AND', $taxonomies);
$query->set('tax_query', $taxonomy_query);
}
return $query;
}
add_filter( 'pre_get_posts', 'custom_search_filter', 999 );
Z góry dziękuję.
pre-get-posts
José Pablo Orozco Marín
źródło
źródło
WP_Query
obiekt do metody ustawiania argumentów?Odpowiedzi:
$query
Zmienną filtra reprezentujeWP_Query
obiekt, więc nie powinno być przechodząc nowyWP_Query
obiekt do metody ustalania właściwości danego obiektu.The Pytanie skopiowany kod został nieprawidłowo stosując filtr, który czuję jest sedno problemu.
Tak,
tax_query
może być używany wewnątrzpre_get_posts
(lub podobnieparse_request
filtrze / akcji ).Oto przykład:
Określ niestandardową taksonomię dla zapytań wyszukiwania
źródło
$tax_query
nie jest przedmiotem,$query
jest jednak (jest to instancjaWP_Query
).Zapytania podatkowe wymagają również ustawienia obiektu tax_query w zapytaniu, ponieważ zapytanie zostało już przeanalizowane. Zobacz moją odpowiedź na temat strony Zmodyfikuj systematykę, aby wykluczyć elementy z systematyki podrzędnej .
źródło