Cómo mostrar el nombre de la categoría en una entrada individual usando WP Blog and Widget
Estoy usando la versión gratuita del plugin WP Blog and Widget para mi blog. Funciona perfectamente.
Mi problema es que necesito mostrar el nombre de la categoría del post actual en la página individual. Intenté usar el siguiente código en single.php para ver el nombre de la categoría:
$cat = get_the_category();
print_r($cat);
Pero no obtengo el nombre de la categoría. Recibo un array vacío:
Array ( )
¿Cómo puedo solucionar este problema?
Single.php
<?php
/**
* Plantilla para mostrar todas las entradas individuales
*
* @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
/* Comienza el 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 = 'No asignada';
}
echo $post_categories;
get_template_part( 'template-parts/content/content', 'single' );
if ( is_singular( 'attachment' ) ) {
// Navegación entre posts padres
the_post_navigation(
array(
/* translators: %s: enlace al post padre */
'prev_text' => sprintf( __( '<span class="meta-nav">Publicado en</span><span class="post-title">%s</span>', 'twentynineteen' ), '%title' ),
)
);
} elseif ( is_singular( 'post' ) ) {
// Navegación entre posts anterior/siguiente
the_post_navigation(
array(
'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Siguiente Post', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Siguiente post:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Post Anterior', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Post anterior:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
)
);
}
// Si los comentarios están abiertos o hay al menos un comentario, carga la plantilla de comentarios
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile; // Fin del loop.
?>
</main><!-- #main -->
</section><!-- #primary -->
<?php
get_footer();

Sí, lo agregué dentro de while ( have_posts() ) : Por favor revisa mi código. Lo actualicé en la pregunta.

Acabo de agregar tu código dentro del bucle while y el resto del código lo obtuve del tema de WordPress.

Tu código funciona si desactivo el plugin WP Blog and Widget. Pero no quiero desactivarlo porque he creado todos los blogs en ese

he actualizado mi respuesta y he verificado que este código funciona bien dentro del bucle single.php https://prnt.sc/s2rhwd

Yo lo hice, porque no hay diferencia funcional entre el código en tu respuesta y la pregunta original. No resolverá el problema.

¿No dijo que hay algún tipo de publicación personalizada? Está obteniendo publicaciones del blog, no del tipo de publicación personalizada.
