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

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

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

<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) { ?>
// вывод можно переопределять
<?php echo $children; ?>
// конец вывода
<?php } ?>

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 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>";
}
?>

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

Другие публикации