Вывести меню подкатегорий и подстраниц в WordPress

Задача с виду очень простая, но я покажу как отобразить только подкатегории и подстраницы родительского пункта без использования стандартного меню.

В некоторых проектах — это просто необходимо.

Итак, выводим подстраницы родительской записи:

<?php // выводим подстраницы
$args = array(
        'post_parent' => get_the_ID(),
        'post_type'   => 'page',
        'numberposts' => -1,
        'post_status' => 'publish'
);
$children = get_children( $args, $output );
?>
     
<?php if (!empty($children)):?>
    <div class="category_list">
        <?php foreach($children as $dest){
            $permalink = get_permalink($dest->ID);
            echo "<div class='category_list_item'><a target="_blank" target="_blank" href='{$permalink}'>" . $dest->post_title . "</a></div>";
        }?>
    </div>
<?php endif; wp_reset_query(); ?>

UPD 17.10.2015 — Вывод подкатегорий родительской рубрики (рубрики без записей не выводятся):

<?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 target="_blank" target="_blank" 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 target="_blank" target="_blank" href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
<?php }
echo "</ul></div>";
}
?>

Если у вас есть более простые решения прошу поделиться ими в комментариях.

ВКонтакте
Facebook
WhatsApp
Telegram
Автор статьи
Метки
Выгодный хостинг
Хостинг Beget

Выгодная партнёрская программа! Верните на свой счёт 20% с любой суммы от оплаты хостинга Beget!

Новое в блоге

Смотрите также

Мессенджеры

Написать сообщение

Отправлено!

Мы свяжемся с вами в ближайшее время.