Come ottenere il titolo di una categoria in un loop personalizzato?

30 mar 2011, 20:43:58
Visualizzazioni: 17K
Voti: 1

Sto usando il seguente codice per visualizzare un elenco di post all'interno di una categoria, ma vorrei mostrare il titolo nel suo tag h2 sopra l'elenco.

<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 -->

MODIFICA:

Ho provato a usare single_cat_title, tuttavia il titolo che viene visualizzato è quello della categoria genitore per tutti i div delle sottocategorie. Ecco un esempio di div che sto replicando più volte, dove la query estrae post da diverse sottocategorie. Vorrei che il titolo di ogni sottocategoria apparisse sopra i relativi post. Capisco che non funzioni perché la funzione restituisce la categoria genitore, ma non riesco a capire come risolvere con 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
Commenti

non ha senso perché nel ciclo sopra stai interrogando post da tutte le categorie. E cosa c'entra include? È un argomento valido?

onetrickpony onetrickpony
30 mar 2011 21:04:23

hai assolutamente ragione. Ho sbagliato. Intendevo usare cat=4, non include. Sto usando questo snippet più volte in una pagina. Quindi volevo mostrare la categoria sopra la lista.

chris_s chris_s
31 mar 2011 02:19:45
Tutte le risposte alla domanda 2
1

Dato che hai già l'ID della categoria (lo usi nella tua chiamata a WP_Query::query()), puoi semplicemente usarlo per richiedere il nome della categoria. get_cat_name( $cat_id ) farà esattamente questo. Utilizza in background get_category( $cat_id ), che restituisce l'oggetto categoria completo, il che può essere utile se vuoi mostrare maggiori informazioni sulla categoria.

5 apr 2011 16:24:57
Commenti

era esattamente quello che stavo cercando. Grazie Jan.

chris_s chris_s
6 apr 2011 17:55:22
2

Non è del tutto chiaro a cosa ti riferisci, hai chiesto come ottenere il titolo della categoria all'interno di un loop personalizzato. Ti riferisci a una categoria specifica o a una categoria associata a un determinato post all'interno di quel loop?

In ogni caso, se ti riferisci a stampare il nome della prima categoria per ogni post nel tuo loop personalizzato, aggiungi semplicemente il seguente codice da qualche parte all'interno del tuo loop.

<?php single_cat_title(); ?>

La documentazione per la funzione si trova qui:
http://codex.wordpress.org/Function_Reference/single_cat_title

Tuttavia, nota il commento sotto la tua domanda, è un punto valido: cosa intendevi fare con il parametro include, stai cercando di filtrare quella query a un particolare insieme di post?

Puoi trovare i parametri validi per la query nella pagina del codex di WP_query, se può esserti utile. Se non sei sicuro su come impostare i parametri, faccelo sapere.. ;)

30 mar 2011 22:55:46
Commenti

Proverò a farlo. Aveva ragione riguardo all'include. Quello è stato un mio errore.

chris_s chris_s
31 mar 2011 02:20:47

Quindi ho provato, tuttavia, il titolo viene mostrato dalla categoria genitore per tutti i div delle sottocategorie. Ecco un esempio di due div, dove la query recupera post da due diverse sottocategorie. Vorrei che il titolo di ogni sottocategoria apparisse sopra i relativi post.

chris_s chris_s
31 mar 2011 18:24:42