Как отобразить название категории в записи при использовании WP Blog and Widget?
Я использую бесплатную версию плагина WP Blog and Widget для своего блога. Он работает отлично.
Моя проблема заключается в том, что мне нужно отобразить название категории текущей записи на странице отдельной записи. Я попробовал следующий код в файле single.php, чтобы проверить название категории:
$cat = get_the_category();
print_r($cat);
Но я не получаю название категории. Я получаю пустой массив:
Array ( )
Как я могу решить эту проблему?
Single.php
<?php
/**
* Шаблон для отображения всех отдельных записей
*
* @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
/* Начало цикла */
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 = 'Не назначено';
}
echo $post_categories;
get_template_part( 'template-parts/content/content', 'single' );
if ( is_singular( 'attachment' ) ) {
// Навигация по родительской записи
the_post_navigation(
array(
/* переводчики: %s: ссылка на родительскую запись */
'prev_text' => sprintf( __( '<span class="meta-nav">Опубликовано в</span><span class="post-title">%s</span>', 'twentynineteen' ), '%title' ),
)
);
} elseif ( is_singular( 'post' ) ) {
// Навигация по предыдущей/следующей записи
the_post_navigation(
array(
'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Следующая запись', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Следующая запись:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Предыдущая запись', 'twentynineteen' ) . '</span> ' .
'<span class="screen-reader-text">' . __( 'Предыдущая запись:', 'twentynineteen' ) . '</span> <br/>' .
'<span class="post-title">%title</span>',
)
);
}
// Если комментарии открыты или есть хотя бы один комментарий, загружаем шаблон комментариев
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile; // Конец цикла
?>
</main><!-- #main -->
</section><!-- #primary -->
<?php
get_footer();
Да, я добавил внутри while ( have_posts() ) : Пожалуйста, проверь мой код. Я обновил его в вопросе.

Я просто добавил ваш код внутри цикла while, а остальную часть кода взял из темы WordPress.

Ваш код работает, если я отключаю плагин WP Blog and Widget. Но я не хочу его отключать, потому что все блоги созданы с его помощью

я обновил свой ответ и проверил, что этот код отлично работает внутри цикла single.php https://prnt.sc/s2rhwd

Я, потому что нет функциональной разницы между кодом в вашем ответе и оригинальным вопросом. Это не решит проблему.

Он не сказал, что у него есть произвольный тип записи? Он получает записи из блога, а не из произвольного типа записи.
