How can I display the category name in a single post when using Categories – WP Blog & Widget?

I am using the free version of WP Blog & Widgets plugin for my blog. It’s working perfectly.

My problem is, I have to display the current post category name on my single page. So I tried the below code on a single.php page to check the category name.

$cat = get_the_category();
print_r($cat);

But I can’t find the category name. I am getting an empty array.

Array ( )

How can I fix this problem?

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();

Leave a Comment