Articles
¿Cómo puedo mostrar el nombre de la categoría en la publicación única cuando uso WP Blog and Widget?
On febrero 16, 2021 by adminEstoy usando la versión gratuita del complemento WP Blog and Widget para mi blog. Funciona perfectamente.
Mi problema es que tengo que mostrar el nombre de la categoría de publicación actual en mi única página. Así que probé el siguiente código en una página single.php para verificar el nombre de la categoría.
$cat = get_the_category(); print_r($cat);
pero no obtengo el nombre de la categoría. Obtengo una matriz vacía.
Array ( )
¿Cómo puedo solucionar este problema?
Single.php
<?php /** * The template for displaying all single posts * * @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 /* Start the 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 = "Not Assigned"; } echo $post_categories; get_template_part( "template-parts/content/content", "single" ); if ( is_singular( "attachment" ) ) { // Parent post navigation. the_post_navigation( array( /* translators: %s: parent post link */ "prev_text" => sprintf( __( "<span class="meta-nav">Published in</span><span class="post-title">%s</span>", "twentynineteen" ), "%title" ), ) ); } elseif ( is_singular( "post" ) ) { // Previous/next post navigation. the_post_navigation( array( "next_text" => "<span class="meta-nav" aria-hidden="true">" . __( "Next Post", "twentynineteen" ) . "</span> " . "<span class="screen-reader-text">" . __( "Next post:", "twentynineteen" ) . "</span> <br/>" . "<span class="post-title">%title</span>", "prev_text" => "<span class="meta-nav" aria-hidden="true">" . __( "Previous Post", "twentynineteen" ) . "</span> " . "<span class="screen-reader-text">" . __( "Previous post:", "twentynineteen" ) . "</span> <br/>" . "<span class="post-title">%title</span>", ) ); } // If comments are open or we have at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) { comments_template(); } endwhile; // End of the loop. ?> </main><!-- #main --> </section><!-- #primary --> <?php get_footer();
Comentarios
Respuesta
Puede simplemente poner este código en su single. php
foreach((get_the_category()) as $category) { echo $category->cat_name . " "; }
Comentarios
- Gracias por la respuesta, pero solo obtengo No asignado
- ¿así que ha asignado la categoría?
- Sí, tengo una categoría y ya la he asignado.
- ¿Pusiste el código dentro del ciclo while?
- Sí, agregué inslide while (have_posts ()): Verifique mi código. Actualicé en la pregunta.
get_the_category()
obtiene términos de lacategory
taxonomía. El complemento que vinculó crea un tipo de publicación personalizado, así que usted ¿Seguro que ' no está creando también una taxonomía separada para ' categorías de blog '? Si tu publicación tiene términos de taxonomía personalizados que debes usarget_the_terms()
, noget_the_category()
.get_the_terms()
, debe proporcionar el nombre de la taxonomía, que no ' no lo sé. Verifique la URL de la pantalla de edición para esas categorías. Debe incluir el nombre de la taxonomía.