Gibt es eine Möglichkeit, $query->set('tax_query', ...)
in pre_get_posts
Filter zu verwenden? Beispielsweise ändert der nächste Code die Abfrage nicht. Beachten Sie, dass ich $ taxonomies von und benutzerdefinierte Suche erstelle.
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 );
Danke im Voraus.
pre-get-posts
José Pablo Orozco Marín
quelle
quelle
WP_Query
Objekt an eine Methode zum Festlegen von Argumenten?Antworten:
Die
$query
Variable im Filter stellt einWP_Query
Objekt dar, daher sollten Sie kein neuesWP_Query
Objekt an die Methode zum Festlegen der Eigenschaften dieses Objekts übergeben.Die Frage, von der Sie Code kopiert haben , hat den Filter falsch verwendet. Ich bin der Meinung, dass dies der Kern Ihres Problems ist.
Ja,
tax_query
kann in einempre_get_posts
(oder ähnlichenparse_request
) Filter / einer Aktion verwendet werden.Hier ein Beispiel:
Geben Sie eine benutzerdefinierte Taxonomie für Suchanfragen an
quelle
$tax_query
ist kein Objekt,$query
ist aber (es ist eine Instanz vonWP_Query
).Bei Steuerabfragen müssen Sie auch das Objekt tax_query in der Abfrage festlegen, da die Abfrage bereits analysiert wurde. Siehe meine Antwort auf den Seiten Taxonomie ändern, um Elemente in untergeordneten Taxonomien auszuschließen .
quelle