Доброе утро. Помогите, пожалуйста с кодом. Мне нужно, чтобы по клику на родительских категориях в меню, на их страницах отображались дочерние категории с превью. А по клику по дочерним категориям отображались страницы с их постами. Нашел код:
Код:
<?php
$i=1;
$cat = get_query_var('cat');
$categories = get_categories('parent='.$cat.'&hide_empty=0');
foreach ($categories as $category) { $i++; }
if ($i > 1) {
echo "<div class=\"categories\"><ul>";
foreach ($categories as $category) { ?>
<li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
<?php }
echo "</ul></div>";
} else {
$pcat = get_category(get_query_var('cat'),false);
$pcatid = $pcat->category_parent;
$categories = get_categories('parent='.$pcatid.'&hide_empty=0');
echo "<div class=\"categories\"><ul>";
foreach ($categories as $category) { ?>
<li<?php if ($category->term_id == $cat) { ?> class="current"<?php } ?>><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
<?php }
echo "</ul></div>";
}
?>
Вставил его в archive.php.
Код:
<?php
get_header();
$sidebarControl = vidorev_sidebar_control();
?>
<div id="primary-content-wrap" class="primary-content-wrap">
<div class="primary-content-control">
<div class="site__container fullwidth-vidorev-ctrl container-control">
<?php do_action( 'vidorev_nav_breadcrumbs' );?>
<div class="site__row sidebar-direction">
<main id="main-content" class="site__col main-content">
<?php do_action( 'vidorev_above_channel_ads' );?>
<div class="blog-wrapper global-blog-wrapper blog-wrapper-control">
<?php
$archive_style = vidorev_archive_style();
do_action( 'vidorev_archive_heading', $archive_style );
do_action( 'vidorev_archive_alphabet_filter', $archive_style );
$category_description = trim(category_description());
if($category_description!='' && vidorev_get_redux_option('caterory_desc_post', 'top') == 'top'){
?>
<div class="archive-cat-desc top-lc">
<?php echo wp_kses_post($category_description);?>
</div>
<?php
$i=1;
$cat = get_query_var('cat');
$categories = get_categories('parent='.$cat.'&hide_empty=0');
foreach ($categories as $category) { $i++; }
if ($i > 1) {
echo "<div class=\"categories\"><ul>";
foreach ($categories as $category) { ?>
<li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
<?php }
echo "</ul></div>";
} else {
$pcat = get_category(get_query_var('cat'),false);
$pcatid = $pcat->category_parent;
$categories = get_categories('parent='.$pcatid.'&hide_empty=0');
echo "<div class=\"categories\"><ul>";
foreach ($categories as $category) { ?>
<li<?php if ($category->term_id == $cat) { ?> class="current"<?php } ?>><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
<?php }
echo "</ul></div>";
}
?>
<?php
}
if ( have_posts() ) :
?>
<div class="blog-items blog-items-control site__row <?php echo esc_attr($archive_style);?>">
<?php
while ( have_posts() ) : the_post();
if($archive_style!='movie-grid'){
do_action('vidorev_between_post_content_ads');
}
get_template_part( 'template-parts/content', $archive_style );
endwhile;
?>
</div>
<?php do_action('vidorev_pagination', 'template-parts/content', $archive_style); ?>
<?php else :
get_template_part( 'template-parts/content', 'none' );
endif;
if($category_description!='' && vidorev_get_redux_option('caterory_desc_post', 'top') == 'bottom'){
?>
<div class="archive-cat-desc bottom-lc">
<?php echo wp_kses_post($category_description);?>
</div>
<?php
}
?>
</div>
</main>
<?php
if($sidebarControl!='hidden'){
get_sidebar();
}
?>
</div>
</div>
</div>
</div>
<?php
get_footer();
Вроде бы работает. Но на странице любой дочерней категории отображаются ВСЕ подкатегории данной родительской категории.
Мне нужно, чтобы в подкатегориях отображались только их посты. И нет вывода превью. Подскажите, пожалуйста, как убрать подкатегории со страниц подкатегорий и добавить им миниатюры. Заранее огромное спасибо.