Não sei se entendi mas porque não obtém os posts mais recentes na categoria “Colunistas”? Isso automaticamente pega os posts da edição mais recente.
Se quer mostrar os mais recentes ao visitar a subcategoria, pode obter o slug da categoria da query
atual, ex.:
Ao visitar a página da subcategoria “Edição 173”, mostrar os posts mais recentes na “Edição 173”.
Para isso, obtenha o slug da categoria atual que é retornada bem antes da página aparecer:
<?php
if (is_category( )) { //se for pagina de listagem de categoria...
$cat = get_query_var('cat'); //pega info sobre a query atual, no caso dados da categoria
$suacat = get_category ($cat);
echo 'O slug dessa categoria: '. $suacat->slug;
}
?>
Diana muito obrigado por sua ajuda. Porem eu preciso que a barra lateral exiba apenas os ultimos posts da sub-categoria colunista, mas sempre os referentes à edição na qual esta no momento.
Ex: Estou na Edição 173, essa edição tem 2 sub-categorias 1)Educação 2)Colunistas… Quando eu entrar na sub-categoria Colunistas a barra lateral exibe os post da sub-categoria colunista referente a Edição 173.
E se eu entra na sub-categoria Educação ele tem que continuar exibindo os post da sub-categoria Colunista (apenas os post desta sub-categoria pode ser mostrada na barra lateral).
A barra lateral só pode exibir os post de colunistas e sempre da edição em que esta.
Se poder me ajudar ficarei muito grato.
Olá,
Acho que entendi, testei assim: quando estiver na categoria, não importa se “Edição 173” ou “Colunistas”, vai mostrar os posts recentes dessa categoria, em “Edição 173” os mais recentes em “Edição 173”, em “Colunistas”, os mais recentes em “Colunistas”, não tem com misturar a menos que o post esteja em duas categorias mãe ao mesmo tempo, dai o posts aparece nas duas listagens.
Então por exemplo na barra lateral adicionei:
<?php if (is_category()) : ?>
<ul>
<?php
$cat_atual = get_query_var('cat'); //pega info sobre a query atual, no caso dados da categoria
$categoria = get_category ($cat_atual);
$posts_recentes = new WP_Query(array(
'posts_per_page' => 5,
'category__in' => $categoria->cat_ID
));
if ($posts_recentes->have_posts()): while ($posts_recentes->have_posts()) : $posts_recentes->the_post();
?>
<li><a href="<?php the_permalink(); ?>" rel="bookmark" title="Ler <?php the_title(); ?>" ><?php the_title(); ?></a></li>
<?php endwhile; else:?>
</ul>
<?php endif;?>
<?php endif; ?>
(Os posta não são atribuídos à Categoria mãe, ou seja, usam só a sub categoria, não testei de outro jeito).
Para mostrar os posts recentes da categoria de um post que se está vendo (no single), é quase igual, mas precisa pegar a categoria do post atual (pega o ID e pega a categoria) e passa para 'category__in'
.
Diana muito obrigado, Porem acabei fazendo de outra forma.
<?php
$category = get_the_category();
$catParID = $category[0]->category_parent;
$strSql = ” SELECT slug FROM $wpdb->terms term “;
$strSql = $strSql.” INNER JOIN $wpdb->term_taxonomy rel ON term.term_id = rel.term_id “;
$strSql = $strSql.” WHERE parent = “.$catParID;
$strSql = $strSql.” AND term.name LIKE ‘colunistas’ “;
$aryDados = $wpdb->get_row( $wpdb->prepare( $strSql), ARRAY_A );
echo $aryDados[‘slug’];
$myquery = new WP_Query(‘category_name=colunistas-edicao-172&posts_per_page=5’ );
if ($myquery->have_posts()) : while ($myquery->have_posts()) : $myquery->the_post(); ?>
” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?>
<?php endwhile; endif;
wp_reset_query(); ?>
Mas surgiu um problema, quando vou passar por parametro o ”$aryDados ” no
$myquery = new WP_Query(‘category_name=’.BEM NESTE LOCAL.’&posts_per_page=5′ );
Ele não filtra pelo slug, e aparece todos os post. E não apenas os dos colunistas.
RESOLVIDOOO..
<?php
$category = get_the_category();
$catParID = $category[0]->category_parent;
$strSql = ” SELECT slug FROM $wpdb->terms term “;
$strSql = $strSql.” INNER JOIN $wpdb->term_taxonomy rel ON term.term_id = rel.term_id “;
$strSql = $strSql.” WHERE parent = “.$catParID;
$strSql = $strSql.” AND term.name LIKE ‘colunistas’ “;
$aryDados = $wpdb->get_row( $wpdb->prepare( $strSql), ARRAY_A );
echo $aryDados[‘slug’];
$myquery = new WP_Query(‘category_name=’.$aryDados[‘slug’].’&posts_per_page=5′ );
if ($myquery->have_posts()) : while ($myquery->have_posts()) : $myquery->the_post(); ?>
” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?>
<?php endwhile; endif;
wp_reset_query();
?>
DIANA, MUITO OBRIGADO POR SUA AJUDA !