¿Cómo obtener el título de una categoría en un loop personalizado?

30 mar 2011, 20:43:58
Vistas: 17K
Votos: 1

Estoy usando el siguiente código para mostrar una lista de posts dentro de una categoría, pero quiero mostrar el título en su propia etiqueta h2 encima de la lista.

<ul class="subcats-list">
<?php
$weightloss = new WP_Query();
$weightloss->query('showposts=5&include=4');

while ($weightloss->have_posts()) : $weightloss->the_post(); ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile; ?>

</ul><!-- subcat -->

EDITADO:

Intenté usar single_cat_title, sin embargo, el título aparece de la categoría padre para todos los divs de subcategorías. Aquí hay un ejemplo de un div que estoy replicando múltiples veces, donde la consulta está extrayendo posts de diferentes subcategorías. Me gustaría el título de cada subcategoría encima de los posts. Me doy cuenta que no funciona porque estoy devolviendo la categoría padre con esa función, simplemente no puedo resolver el php...

        <ul class="subcats-list">
            <h2 class="subcats-title"><?php single_cat_title(); ?></h2>
                <?php
                $weightloss = new WP_Query();
                $weightloss->query('showposts=5&cat=4');

                while ($weightloss->have_posts()) : $weightloss->the_post(); ?>
                  <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
                <?php endwhile; ?>

        </ul><!-- subcat -->
2
Comentarios

eso no tiene sentido porque en el ciclo anterior estás consultando publicaciones de todas las categorías. ¿Y qué pasa con include? ¿Es ese un argumento válido?

onetrickpony onetrickpony
30 mar 2011 21:04:23

tienes toda la razón. Me equivoqué en eso. Quise usar cat=4, no include. Estoy usando este fragmento múltiples veces en una página. Así que quería mostrar la categoría encima de la lista.

chris_s chris_s
31 mar 2011 02:19:45
Todas las respuestas a la pregunta 2
1

Como ya tienes el ID de la categoría (lo usas en tu llamada a WP_Query::query()), puedes usarlo directamente para obtener el nombre de la categoría. get_cat_name( $cat_id ) hace exactamente eso. Internamente usa get_category( $cat_id ), que devuelve el objeto completo de la categoría, lo cual puede ser útil si quieres mostrar más información sobre la categoría.

5 abr 2011 16:24:57
Comentarios

esto era exactamente lo que estaba buscando. Gracias Jan.

chris_s chris_s
6 abr 2011 17:55:22
2

No está del todo claro a qué te refieres, preguntaste cómo obtener el título de la categoría dentro de un bucle personalizado. ¿Te refieres a una categoría en particular o a una categoría asociada con una publicación específica dentro de ese bucle?

En cualquier caso, si te refieres a mostrar el nombre de la primera categoría para cada publicación en tu bucle personalizado, simplemente agrega el siguiente código en algún lugar dentro de tu bucle.

<?php single_cat_title(); ?>

La documentación para esta función se puede encontrar aquí:
http://codex.wordpress.org/Function_Reference/single_cat_title

Sin embargo, ten en cuenta el comentario bajo tu pregunta, es un punto válido, ¿qué pretendías con el parámetro include? ¿Estás intentando filtrar esa consulta a un conjunto particular de publicaciones?

Los parámetros válidos para la consulta se pueden encontrar en la página del codex de WP_query, por si te resulta útil. Si no estás seguro de cómo configurar los parámetros, solo háznoslo saber... ;)

30 mar 2011 22:55:46
Comentarios

Voy a intentarlo. Tenía razón sobre el include. Ese fue mi error.

chris_s chris_s
31 mar 2011 02:20:47

Así que lo probé, sin embargo, el título aparece como el de la categoría padre para todos los divs de subcategorías. Aquí hay un ejemplo de dos divs, donde la consulta está extrayendo publicaciones de dos subcategorías diferentes. Me gustaría que el título de cada subcategoría apareciera arriba de las publicaciones.

chris_s chris_s
31 mar 2011 18:24:42