enumerar las publicaciones de wordpress solo de la categoría actual

3 minutos de lectura

Estoy intentando crear un segundo menú de navegación en mi sitio de wordpress.

Quiero que esto muestre enlaces a todas las publicaciones dentro de la categoría actual solamente.

He estado experimentando con la función get_posts pero estoy luchando por encontrar la forma de seleccionar dinámicamente la categoría actual. es decir, qué colocar aquí categoría=x

Cualquier ayuda es muy apreciada

Aquí está mi código de plantilla que he estado usando

<ul id="catnav">

     <?php
     global $post;
     $myposts = get_posts('numberposts=5&category=1');
     foreach($myposts as $post) :
     ?>
        <li><a href="https://stackoverflow.com/questions/13010805/<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
     <?php endforeach; ?>



    </ul>

  • Creo que tengo este código en casa. Lo compartiré si me recuerdas respondiendo en este comentario. Comprobaré si también lo tengo en mi bandeja de entrada.

    – Pablo Jomer

    22 de octubre de 2012 a las 11:49


  • Gracias Pablo, si pudieras sería de gran ayuda.

    – usuario1765225

    22/10/2012 a las 17:25

Finalmente lo resolví con este código de aquí: http://www.snilesh.com/resources/wordpress/wordpress-recent-posts-from-current-same-category/

Lo modifiqué para incluir la página actual y la lista ascendente

<ul id="catnav">
<?php
global $post;
$category = get_the_category($post->ID);
$category = $category[0]->cat_ID;
$myposts = get_posts(array('numberposts' => 5, 'offset' => 0, 'category__in' => array($category), 'post_status'=>'publish', 'order'=>'ASC' ));
foreach($myposts as $post) :
setup_postdata($post);
?>
<li>
<a href="https://stackoverflow.com/questions/13010805/<?php the_permalink(); ?>">
<?php the_title(); ?></a>
</li>
<?php endforeach; ?>
<?php wp_reset_query(); ?>
<li><a href="?p=46">Why Us?</a></li>

</ul>

<!--Insted Of this-->
$myposts = get_posts('numberposts=5&category=1');
<!--Use This-->
$cat_ID = get_query_var('cat');
query_posts('cat=".$cat_ID."&showposts=5&order=ASC');

  • Gracias Balu, pero esto no parece funcionar. ¿Qué te propones hacer con code foreach ($ mis publicaciones como $ publicación):

    – usuario1765225

    22 de octubre de 2012 a las 17:26


$args=array(
'cat' => get_query_var('cat'),
  'orderby' => 'title',
  'order' => 'ASC',
  'posts_per_page'=>-1,
  'caller_get_posts'=>1
);
$my_query = new WP_Query($args);

¡Funcionó para mí!

Así que encontré este fragmento de código que funciona muy bien para mostrar todas las publicaciones en la categoría actual.

 <ul id="catnav">

 <?php
foreach( ( get_the_category() ) as $category ) {
$the_query = new WP_Query('category_name=" . $category->category_nicename . "&showposts=5&order=ASC');
while ($the_query->have_posts()) : $the_query->the_post();
?>
            <li>
                <a href="https://stackoverflow.com/questions/13010805/<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            </li>
<?php endwhile; ?>
<?php
}
?>


</ul>

Pero tengo varias categorías que deseo excluir. Existen algunas publicaciones en dos categorías que quiero excluir mostrando la publicación en las categorías 8, 9 y 11.

¿Algunas ideas?

Creo que es mejor obtener publicaciones de la identificación de la categoría en lugar del nombre de la categoría para que pueda escribir una condición si no y puede excluir las publicaciones que tienen la identificación como 8,9,11

¿Ha sido útil esta solución?