Вывести список дочерних рубрик Wordpress

240
30 октября 2017, 23:56

Суть вопроса такая. Есть код

$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-го уровня.

Answer 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/

READ ALSO
VK API wall.get() текст

VK API wall.get() текст

Ребят, нужна помощь с VK API

188
Конвертирование базы данных из MySQL в SQLite

Конвертирование базы данных из MySQL в SQLite

Информация в базе MySQL на хостинге обновляется парсером на PHP каждый деньКак сделать так, чтобы после каждого обновления информации в базе...

216
Доступ к объектам в массиве указателей

Доступ к объектам в массиве указателей

К примеру у меня есть 2 массива указателей:

246
Ошибкa в статическом массиве

Ошибкa в статическом массиве

Метод printf принимает первым параметром строку, а затем несколько значений, которые будут подставлены в эту строкуВ вашем коде в printf передаётся...

290