Custom WP_Query quebra o comportamento padrão de visualização do post correto associado ao termo de imposto!

Eu tenho uma taxonomia personalizada para um custom-post-type como categorias.

Eu usei o loop padrão no meu modelo taxonomy-event_type.php até agora …

 if ( have_posts() ) : while ( have_posts() ) : the_post(); 

Isso significava que o modelo só mostrava as postagens associadas ao termo atual (categoria) em que estava a postagem. Assim, em url/event_type/workshops apenas todas as postagens que foram configuradas para “workshops” no backend apareceriam.

Agora eu mudei esse loop padrão para um loop personalizado onde eu estou passando alguns args para que eu possa classificar as postagens por um meta-valor (a data do evento)

 $args = array( "post_type" => "wr_event", "meta_key" => "_wr_event_date", "orderby" => "meta_value_num", "order" => "ASC" //"terms" => ); $wr_events = new WP_Query( $args ); if ( $wr_events->have_posts() ) : while ( $wr_events->have_posts() ) : $wr_events->the_post(); 

Isso funciona perfeito. Única coisa. Isso quebra o comportamento padrão para o termo (categoria) que estou atualmente visualizando.

Então, com este loop personalizado ao visualizar url/event_type/workshops ou url/event_type/lectures sempre as mesmas postagens aparecem! Como posso visualizar novamente somente as postagens associadas ao termo atual “workshops” ou “palestras”?

Obrigado pela ajuda!

editar:

se eu fizer …

 $current_cat = get_query_var( 'event_type' ); echo $current_cat; $args = array( … 

O $current_cat contém o termo certo (categoria) em que estou atualmente. O único problema é que as postagens no loop são sempre as mesmas. Como posso filtrar por este termo?

Solutions Collecting From Web of "Custom WP_Query quebra o comportamento padrão de visualização do post correto associado ao termo de imposto!"

A segunda consulta executa uma consulta inteiramente nova e não tem os termos definidos.

Além disso, não é tão eficiente “refazer” a consulta. Em vez disso, pre_get_posts em pre_get_posts e altere a ordem lá:

 function change_order_for_events( $query ) { //Check if currenty query is the 'main query' and event type taxonomy being viewed if ( $query->is_main_query() && is_tax('event_type')) { $query->set( 'meta_key', '_wr_event_date' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'change_order_for_events' ); 

Para pontos de bônus, você pode querer verificar se os parâmetros ‘orderby’ e ‘order’ não estão configurados – assim, o pedido por data se torna padrão para events nas páginas de taxonomia do tipo de evento, mas pode ser substituído, se necessário.

Todos os condicionais estão disponíveis para você.