Hay una manera de usar $query->set('tax_query', ...)
en el pre_get_posts
filtro? por ejemplo, el siguiente código no está alterando la consulta. Tenga en cuenta que estoy creando $ taxonomías a partir de una búsqueda personalizada.
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 );
Gracias por adelantado.
pre-get-posts
José Pablo Orozco Marín
fuente
fuente
WP_Query
objeto a un método de configuración de argumentos?Respuestas:
La
$query
variable en el filtro representa unWP_Query
objeto, por lo que no debería pasar un nuevoWP_Query
objeto al método para establecer las propiedades de ese objeto.La pregunta de la que copió el código estaba usando incorrectamente el filtro, que creo que es el quid de su problema.
Sí,
tax_query
se puede usar dentro de un filtro / acciónpre_get_posts
(o similarparse_request
).Aquí hay un ejemplo:
especifique una taxonomía personalizada para consultas de búsqueda
fuente
$tax_query
no es un objeto,$query
es (es una instancia deWP_Query
).Las consultas fiscales requieren que también establezca el objeto tax_query en la consulta ya que la consulta ya se ha analizado. Vea mi respuesta para las páginas Modificar taxonomía para excluir elementos en taxonomías secundarias .
fuente