Você usa tax_query
incorretamente. Dê uma olhada em Página do Codex
tax_query
deve ser uma matriz que pode conter:
-
relation
- deve ser string (AND / OR) - termo de taxonomia - matriz com taxonomia, campo, termos e assim por diante definidos.
No seu código, sua configuração tax_query
para:
$taxquery = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'myposttypes',
'field' => 'slug',
'terms' => $term_slug
),
),
);
E deve ser:
$taxquery = array(
array(
'taxonomy' => 'myposttypes',
'field' => 'slug',
'terms' => $term_slug
),
);
post_type
é outro parâmetro, então você não pode configurá-lo dentro de tax_query
.
Mas ... Você ainda deve ter cuidado, se você alterar tax_query
- pode ter um valor já. Então, se você quer ser respeitoso com isso, você deve usar algo assim:
$tax_query = $query->get( 'tax_query' );
if ( ! is_array( $tax_query ) ) {
$tax_query = array();
}
$taxquery[] = array(
'taxonomy' => 'myposttypes',
'field' => 'slug',
'terms' => $term_slug
);
$query->set( 'tax_query', $taxquery );
Dessa forma, você adicionará sua consulta de impostos a consultas já existentes e não as substituirá.