How can I display the category name in the single post when using WP Blog and Widget?
Folosesc versiunea gratuită a plugin-ului WP Blog and Widget pentru blogul meu. Funcționează perfect.
Problema mea este că trebuie să afișez numele categoriei curente a articolului pe pagina individuală. Am încercat codul de mai jos în single.php pentru a verifica numele categoriei.
$cat = get_the_category();
print_r($cat);
dar nu obțin numele categoriei. Obțin un array gol.
Array ( )
Cum pot rezolva această problemă?
Single.php
<?php
/**
* Șablonul pentru afișarea tuturor articolelor individuale
*
* @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
/* Începe bucla */
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 = 'Nu este atribuit';
}
echo $post_categories;
get_template_part( 'template-parts/content/content', 'single' );
if ( is_singular( 'attachment' ) ) {
// Navigația către articolul părinte
the_post_navigation(
array(
/* tradus: %s: link articol părinte */
'prev_text' => sprintf( __( '<span class="meta-nav">Publicat în</span><span class="post-title">%s</span>', 'twentynineteen' ), '%title' ),
)
);
} elseif ( is_singular( 'post' ) ) {
// Navigația către articolul anterior/următor
the_post_navigation(
array(
'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Articolul următor', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Articolul următor:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Articolul anterior', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Articolul anterior:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
)
);
}
// Dacă comentariile sunt deschise sau avem cel puțin un comentariu, încărcăm șablonul de comentarii
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile; // Sfârșitul buclei
?>
</main><!-- #main -->
</section><!-- #primary -->
<?php
get_footer();
Mulțumesc pentru răspuns, dar primesc doar „Not Assigned” (Neatribuit)

Da, am adăugat în interiorul while ( have_posts() ) : Te rog verifică codul meu. L-am actualizat în întrebare.

Tocmai am adăugat codul tău în interiorul buclei while, iar restul codului l-am preluat din tema WordPress.

Codul tău funcționează dacă dezactivez pluginul WP Blog and Widget. Dar nu vreau să-l dezactivez pentru că am creat toate articolele de blog folosindu-mă de el

am actualizat răspunsul meu și am verificat că acest cod funcționează corect în interiorul buclei single.php https://prnt.sc/s2rhwd

Eu am făcut-o, pentru că nu există nicio diferență funcțională între codul din răspunsul tău și întrebarea originală. Nu va rezolva problema.

El nu a spus că există vreun tip de postare personalizată? El primește postări din blog, nu din tipul de postare personalizată.
