• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Все категории верхнего уровня

Image CMS

sanchahous

Новичок
#1
Мне нужно вывести на каждой странице сайта на woocommerce ссылки на все категории верхнего уровня динамически. Без подкатегорий.
Виджет Woocommerce категории товара не подходит так как выводит все категории верхнего уровня только на главной странице. А мне нужно вывести в шапке на всех страницах.
Вот ссылка http://centrdereva.com/category/lorem
В шапке есть каталог - там сейчас категории прописанные в ручную. А нужно динамически.
На главной http://centrdereva.com встроен виджет Woocommerce категории товара Но в шапку для всех страниц его встроить не получается.
 

Grollem

Опытный
#2
В шапку всех страниц его можно встроить следующим образом
в коде в том месте где тебе нужно вставляешь
<?php the_widget( 'WC_Widget_Product_Categories', "show_children_only=1" ); ?>
 

sanchahous

Новичок
#3
<?php the_widget( 'WC_Widget_Product_Categories', "show_children_only=1" ); ?>
Так не работает. Если я захожу на страницу категории то в шапке этот виджет отображает подкатегории данной категории. А мне нужно просто вывести все категории верхнего уровня на любой странице.
Может есть какой-то вариант?
 

rikitiki

Специалист
Местный
#4
Нечего не понял. Что значит динамически. В настройах меню есть категории товаров. Вставьте из него только пункты верхнего уровня. Можете создать ещё одно меню в хеадере. И вставить эти пункты туда
 

Grollem

Опытный
#6
Может нужно это делать динамически...
попробуй так.
в functions.php добавть этот код
Код:
function get_top_cat () {
  $taxonomy     = 'product_cat';
  $orderby      = 'name'; 
  $show_count   = 0;      // 1 for yes, 0 for no
  $pad_counts   = 0;      // 1 for yes, 0 for no
  $hierarchical = 1;      // 1 for yes, 0 for no 
  $title        = ''; 
  $empty        = 0;
$args = array(
  'taxonomy'     => $taxonomy,
  'orderby'      => $orderby,
  'show_count'   => $show_count,
  'pad_counts'   => $pad_counts,
  'hierarchical' => $hierarchical,
  'title_li'     => $title,
  'hide_empty'   => $empty
);
$all_categories = get_categories( $args );
//print_r($all_categories);
foreach ($all_categories as $cat) {
    //print_r($cat);
    if($cat->category_parent == 0) {
        $category_id = $cat->term_id;

        echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>';





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

get_top_cat ();
 

sanchahous

Новичок
#7
Щас попробую. Дело в том, что думаю это будет удобно для всех. Если изначально не известно общее количество категорий, то потом если добавится новая категория верхнего уровня, то она автоматически добавится в список, а так придется каждый раз переделывать список в ручную. Это пояснение, почему нужно динамически.

в том месте в шаблоне где хочешь выводить категории верхнего уровня пиши
get_top_cat ();

Таки сработало, действительно) Спасибо большое