Как вывести все рубрики, к которым относится запись?
Если запись относится к нескольким рубрикам, в карточках постов и на странице записи выводится одна рубрика.
1. Чтобы на странице записи вывести все рубрики, к которым относится данная запись, установите и активируйте дочернюю тему https://support.wpshop.ru/docs/general/child-themes/.
Из темы Reboot в дочернюю тему reboot_child скопируйте файл single.php.
Откройте файл single.php в дочерней теме и код
<?php if ( $is_show_category ) { ?>
<div class="post-card__category"><?php echo $wpshop_template->get_category( [ 'micro' => false ] ) ?></div>
<?php } ?>
замените на
<?php if ( $is_show_category ) {
$categories = get_the_category();
echo '<div class="post-card__category">';
if ( $categories ) {
foreach ( $categories as $category ) {
echo '<a href="' . get_category_link( $category->term_id ) . '" style="margin-right: 5px;">' . $category->name . '</a>';
}
}
echo '</div>';
} ?>
Затем в дочерней теме reboot_child создайте папку template-parts и из темы Reboot скопируйте в неё файл content-single.php.
Откройте файл /template-parts/content-single.php в дочерней теме и код
<?php if ( $is_show_category && is_singular( 'post' ) ) { ?>
<span class="post-card__category"><?php echo $wpshop_template->get_category() ?></span>
<?php } ?>
замените на
<?php if ( $is_show_category && is_singular( 'post' ) ) {
$categories = get_the_category();
echo '<span class="post-card__category">';
if ( $categories ) {
foreach ( $categories as $category ) {
echo '<a href="' . get_category_link( $category->term_id ) . '" style="margin-right: 5px;">' . $category->name . '</a>';
}
}
echo '</span>';
} ?>
2. Чтобы в карточках постов вывести все рубрики, к которым относится данная запись, установите и активируйте дочернюю тему https://support.wpshop.ru/docs/general/child-themes/.
В дочерней теме reboot_child создайте папку template-parts, в ней папку post-card. Из темы Reboot скопируйте в неё файлы нужных карточек постов.
Файл grid.php – шаблон карточек постов “Сетка”.
Файл horizontal.php – шаблон карточек постов “Горизонтальная”.
Файл small.php – шаблон карточек постов “Маленькая”.
Файл standard.php – шаблон карточек постов “Стандартная”.
Файл vertical.php – шаблон карточек постов “Вертикальная”.
Затем откройте нужные файлы карточек постов в папке /template-parts/post-card дочерней темы и код
if ( 'post' === get_post_type() && $post_card->is_show_element( 'category' ) ) {
echo '<span class="post-card__category"
itemprop="articleSection">' . $wpshop_template->get_category( [ 'link' => false ] ) . '</span>';
}
замените на
if ( 'post' === get_post_type() && $post_card->is_show_element( 'category' ) ) {
$categories = get_the_category();
if ( $categories ) {
echo '<span class="post-card__category">';
foreach ( $categories as $category ) {
echo '<span itemprop="articleSection" style="margin-right:10px;">' . $category->cat_name . '</span>';
}
echo '</span>';
}
}
Также в данном файле код
if ( 'post' === get_post_type() && $order == 'category' && $post_card->is_show_element( 'category' ) ) {
if ( empty( $thumb ) || ! $post_card->is_show_element( 'thumbnail' ) ) {
echo $wpshop_template->get_category( [ 'classes' => 'post-card__category', 'link' => false ] );
}
}
замените на
if ( 'post' === get_post_type() && $order == 'category' && $post_card->is_show_element( 'category' ) ) {
if ( empty( $thumb ) || ! $post_card->is_show_element( 'thumbnail' ) ) {
$categories = get_the_category();
if ( $categories ) {
foreach ( $categories as $category ) {
echo '<span class="post-card__category" itemprop="articleSection" style="margin-right:10px;">' . $category->cat_name . '</span>';
}
}
}
}