Existe uma maneira de usar $query->set('tax_query', ...)
no pre_get_posts
filtro? por exemplo, o próximo código não está alterando a consulta. Observe que estou criando $ taxonomias e pesquisas personalizadas.
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 );
Desde já, obrigado.
pre-get-posts
José Pablo Orozco Marín
fonte
fonte
WP_Query
objeto para um método de configuração de argumento?Respostas:
A
$query
variável no filtro representa umWP_Query
objeto; portanto, você não deve passar um novoWP_Query
objeto para o método para definir as propriedades desse objeto.A pergunta da qual você copiou o código estava incorretamente usando o filtro, que eu acho que é o cerne do seu problema.
Sim,
tax_query
pode ser usado dentro de umpre_get_posts
(ou similarparse_request
) filtro / ação.Aqui está um exemplo:
Especifique uma taxonomia customizada para consultas de pesquisa
fonte
$tax_query
não é um objeto,$query
é (é uma instância deWP_Query
).As consultas fiscais exigem que você também defina o objeto tax_query na consulta, pois a consulta já foi analisada. Veja minha resposta nas páginas Modificar taxonomia para excluir itens em taxonomias filho .
fonte