Publicações de consulta usando taxonomia personalizada e termos selecionados

Não consigo usar matriz para os termos na consulta a seguir, apenas um único termo:

$args=array( 'facts' => 'information', //taxonomy:facts and term:information 'post_type' => 'book', 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1 ); $my_query = null; $my_query = new WP_Query($args) 

Esse comportamento é normal? Existe algum método equivalente para selecionar postagens com certos termos da taxonomia personalizada com o tipo de postagem personalizado?

Solutions Collecting From Web of "Publicações de consulta usando taxonomia personalizada e termos selecionados"

Você está usando um método obsoleto de consulta por taxonomia. Leia o Codex e use tax_query :

 $args=array( 'post_type' => 'book', 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1, 'tax_query' => array( array( 'taxonomy' => 'facts', 'field' => 'slug', 'terms' => 'information' ) ) ); 

FYI, caller_get_posts também está obsoleto.

Eu não tenho certeza se este é o método correto (como não estava obtendo os resultados que queria, fornecendo o parâmetro ‘relação’ para o ‘tax_query’), mas temos um cenário no meu trabalho, onde o site usa um A taxonomia denominada ‘tópicos’ como menu principal, portanto, precisava ser manuseada separadamente do resto das taxonomias, que estavam sendo usadas como opções de filtragem de nível inferior (ou seja, ‘escolas’), além de filtrar para ‘post_type’. Aqui está a minha solução, seguindo o exemplo da mwwewe.

O que é importante notar é que, se a variável de consulta para “escolas” estava vazia, não obtive resultados para toda a consulta, quando deveria produzir todos os resultados, já que as “escolas” não estão mais sendo filtradas. Então, eu acabei por aquela parte da matriz de consulta em um condicional, e funcionou como esperado.

 function uci_get_taxonomies() { $params = array(); $topic = get_queried_object(); $params[TAXONOMY_TOPICS] = $topic->slug; $contentTypes = get_query_var('post_type'); $params['post_type'] = $contentTypes; $schools = get_query_var(TAXONOMY_SCHOOLS); if(!empty($schools)) { $params['tax_query'][] = array('taxonomy' => TAXONOMY_SCHOOLS, 'field' => 'slug', 'terms' => $schools); } $query = new WP_Query($params); //Util::debug($query->query_vars); return $query; }