Come visualizzare il nome della categoria in un singolo post con WP Blog and Widget?
Sto utilizzando la versione gratuita del plugin WP Blog and Widget per il mio blog. Funziona perfettamente.
Il mio problema è che devo visualizzare il nome della categoria del post corrente nella mia pagina singola. Quindi ho provato il seguente codice nella pagina single.php per verificare il nome della categoria.
$cat = get_the_category();
print_r($cat);
ma non ottengo il nome della categoria. Ricevo un array vuoto.
Array ( )
Come posso risolvere questo problema?
Single.php
<?php
/**
* Template per visualizzare tutti i singoli post
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post
*
* @package WordPress
* @subpackage Twenty_Nineteen
* @since 1.0.0
*/
get_header();
?>
<section id="primary" class="content-area">
<main id="main" class="site-main">
<?php
/* Inizia il Loop */
while ( have_posts() ) :
the_post();
$cats = array();
foreach (get_the_category($post_id) as $c) {
$cat = get_category($c);
array_push($cats, $cat->name);
}
if (sizeOf($cats) > 0) {
$post_categories = implode(', ', $cats);
} else {
$post_categories = 'Non Assegnato';
}
echo $post_categories;
get_template_part( 'template-parts/content/content', 'single' );
if ( is_singular( 'attachment' ) ) {
// Navigazione post genitore.
the_post_navigation(
array(
/* traduttori: %s: link post genitore */
'prev_text' => sprintf( __( '<span class="meta-nav">Pubblicato in</span><span class="post-title">%s</span>', 'twentynineteen' ), '%title' ),
)
);
} elseif ( is_singular( 'post' ) ) {
// Navigazione post precedente/successivo.
the_post_navigation(
array(
'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Prossimo Post', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Prossimo post:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Post Precedente', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Post precedente:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
)
);
}
// Se i commenti sono aperti o abbiamo almeno un commento, carica il template dei commenti.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile; // Fine del loop.
?>
</main><!-- #main -->
</section><!-- #primary -->
<?php
get_footer();
Sì, ho aggiunto all'interno del while ( have_posts() ) : Per favore controlla il mio codice. L'ho aggiornato nella domanda.
Naren Verma
Ho appena aggiunto il tuo codice all'interno del ciclo while e il resto del codice l'ho preso dal tema WordPress.
Naren Verma
Il tuo codice funziona se disattivo il plugin WP Blog and Widget. Ma non voglio disattivarlo perché ho creato tutti i blog con quello
Naren Verma
ho aggiornato la mia risposta e ho verificato che questo codice funziona correttamente all'interno del loop di single.php https://prnt.sc/s2rhwd
Atif Aqeel
L'ho fatto io, perché non c'è alcuna differenza funzionale tra il codice nella tua risposta e la domanda originale. Non risolverà il problema.
Jacob Peattie
Non ha detto che c'è un custom post type? Sta ottenendo i post dal blog, non da un custom post type.
Atif Aqeel