Ottenere il nome della categoria da un loop personalizzato e visualizzarlo una sola volta
Ho una pagina principale di una rivista che si aggiorna con ogni numero, e la prima pagina mostra i post in evidenza del numero corrente. Per esempio, questo mese tutti i post sono in una categoria chiamata 'Numero 01' e il prossimo mese, creerò 'Numero 02' che sostituirà i post in evidenza del 'Numero 01' sulla prima pagina.
Sto cercando di mostrare il nome della categoria dei post estratti nella query ma non riesco a farlo fuori dal loop (voglio mostrarlo solo una volta all'inizio prima che il loop inizi).
Ecco la mia query per richiamare i post in evidenza e un tentativo di mostrare il nome della categoria che non funziona...
<?php // Ottieni gli Articoli del Numero Corrente
$currentissueposts = array(
'posts_per_page' => 6,
'post__in' => get_option( 'sticky_posts' ),
'ignore_sticky_posts' => 1
);
$currentissue = new WP_Query( $currentissueposts );
if ( $currentissue->have_posts() ) : ?>
<div class="the-header">
<h3><?php the_category(); ?></h3>
</div><!-- #the-header -->
<?php while( $currentissue->have_posts() ) : $currentissue->the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark">
<ol class="current-index-container">
<li class="the-title"><?php the_title(); ?></li>
<li class="the-author"><?php the_field('sub_head_1'); ?></li>
<li class="the-subtitle"><?php the_field('sub_head_2'); ?></li>
</ol></a>
<?php endwhile;
wp_reset_query();
endif; ?>
Ho esaminato la documentazione riguardo single_post_title e get_the_category ma non riesco a farlo funzionare una sola volta. Qualsiasi aiuto è molto apprezzato!
Ecco un'idea. Nota: questo funzionerà solo se tutti i post appartengono alla categoria desiderata e se tutti i post hanno una sola categoria.
I post vengono restituiti in un array a cui puoi accedere tramite:
$currentissue->posts
Con questo in mente, puoi ottenere l'ID del primo post nel seguente modo:
$currentissue->posts[0]->ID
Ora, puoi assegnarlo a una variabile:
$id = $currentissue->posts[0]->ID
Ora puoi usare get_the_category
per recuperare la categoria a cui appartiene questo post. Ricorda, questa sarà la categoria a cui appartengono tutti i post secondo la tua domanda.
Qualcosa come questo potrebbe funzionare appena fuori dal tuo ciclo, proprio all'interno del tuo statement if
:
$category = get_the_category( $id );
echo $category[0]->cat_name;

Grazie Pieter, sembra funzionare. Quindi sta semplicemente chiamando la categoria del primo post e la sta visualizzando.

<?php print get_the_category(get_the_ID())[0]->name; ?>
get_the_category() - ottiene un array di post con informazioni sulle categorie. get_the_category(get_the_ID()) - ottiene un array contenente informazioni sulla categoria solo per un post specifico. get_the_category(get_the_ID())[0] - ottiene il primo risultato dall'array, che è un oggetto
