Суть вопроса такая. Есть код
$cat = get_category(get_query_var('cat'),false);
$cat_parent = $cat->parent; // ID родительской категории
$current_cat = get_query_var('cat'); // ID текущей категории
if ($cat_parent == 0) {
wp_list_categories('depth=2&hide_empty=0&title_li=&show_count=0&child_of='.$current_cat);
} else {
wp_list_categories('depth=2&hide_empty=0&title_li=&show_count=0&child_of='.$cat_parent);
}
с помощью которого выводятся дочерние рубрики текущей, либо дочерние рубрики родителя (если находишься на странице подкатегории).
Как можно вывести дочерние рубрики родительской рубрики, находясь на странице записи?
Это нужно для создания динамического меню.
Т.е. где бы мы ни находились, в категории, в под категории, на странице записи - мы всегда видим меню, в котором содержатся подрубрики родительской, т.е. 1-го уровня.
Добавьте такую функцию в function.php вашей темы. Ее можно вызывать как из шаблона категории, так и из шаблона поста.
function cat_list_737863() {
global $cat;
$current_cat = $cat; // ID текущей категории
if ( '' === $cat ) {
// На странице поста
$category = get_the_category( get_the_ID() );
$cat = $category[0]->cat_ID;
}
$cat_top = $cat; // ID самой верхней родительской категории
while ( null !== $cat_top->parent ) {
$cat_top = $cat_top->parent;
}
echo '<ul class="children">';
echo '<li class="cat-item cat-tem-' . intval( $cat_top ) . '">';
echo '<a href="' . get_category_link($cat_top) . '">' . get_cat_name($cat_top) . '</a>';
echo '<ul class="children">';
wp_list_categories( 'hide_empty=0&title_li=&show_count=0&child_of=' . $cat_top );
echo '</ul>';
echo '</li>';
echo '</ul>';
}
Работающий пример у меня на тестовом сайте: http://test.kagg.eu/uncategorized/
Сборка персонального компьютера от Artline: умный выбор для современных пользователей