27
Апр
2017

Условие – если текущая категория не верхняя

Есть следующий код:

<?php 
$i=1;
$cat = get_query_var('cat');
$categories = get_categories('parent='.$cat.''); 
foreach ($categories as $category) { $i++; }
if ($i > 1) {
    echo "<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>";
} else {
    $pcat = get_category(get_query_var('cat'),false);
    $pcatid = $pcat->category_parent;
    $categories = get_categories('parent='.$pcatid.''); 
    echo "<ul>";
    foreach ($categories as $category) { ?>
        <li<?php if ($category->term_id == $cat) { ?> class="active"<?php } ?>><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
    <?php } 
    echo "</ul>";
}
?>

Он выводит список подкатегорий текущей категории. Но если у текущей категории нету подкатегорий то выводятся подкатегории к той категории, что выше текущей по иерархии.

Т.е. если мы находимся по адресу сайт.ру/верхняя_категория то выводится просто список категорий сайта (если подкатегорий у текущей категории нет). Это мне и надо убрать.

Но если мы находимся по адресу сайт.ру/верхняя_категория/подкатегория и в ней нету ещё своих подкаегорий то должны выводится дочерные категории для сайт.ру/верхняя_категория/ (т.е. тут все должно работать как сейчас)

Источник: https://ru.stackoverflow.com/questions/659289/%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5-%D0%B5%D1%81%D0%BB%D0%B8-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B0%D1%8F-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F-%D0%BD%D0%B5-%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D1%8F%D1%8F

Тебе может это понравится...

Добавить комментарий