Wordpress виджет, как отображать только подкатегории на основе выбранной родительской категории? - PullRequest
4 голосов
/ 24 октября 2010

Мне было интересно, если кто-нибудь знает, как изменить существующий виджет категории, чтобы отображать только категории в выбранной родительской категории. Пример:

Если мои категории структурированы как:

  • Компьютеры
    • Ноутбуки
    • 1011 * Настольные компьютеры *
    • Программное обеспечение
  • Электроника
    • Камера
    • Аудио / видео

Если кто-то просматривает сообщения в категории «Компьютеры», я бы хотел, чтобы на виджете категорий в боковой панели отображались только ноутбуки, рабочие столы и программное обеспечение.

Есть ли способ сделать это? Кто-нибудь знает плагин, который может это сделать? Спасибо!

Ответы [ 3 ]

5 голосов
/ 25 октября 2010

как насчет использования чего-то подобного?на странице синглов вы можете добавить вызов изнутри страницы single.php на новую боковую панель или включаемый файл ...?

т.е.:

<?php if( is_single() ) { include(TEMPLATEPATH.'/newsidebar.php'); } ?>

newsidebar.php

<ul> 
<?php 
 $catsy = get_the_category();
 $myCat = $catsy->cat_ID;
    wp_list_categories('orderby=id&child_of='.$myCat); 
?>
</ul>

это покажет только категории из текущей используемой категории?

т.е.:

если текущая категория 5 // Компьютеры, то все, что будетбудет отображаться в списке

* Laptops
* Desktops
* Software
3 голосов
/ 26 октября 2010

Спасибо за вашу помощь. Я смог заставить его работать, сделав это ...

<?php
if (is_category()) {
    $cat = get_query_var('cat');
    $this_category = get_category($cat);
    $this_category = wp_list_categories('hide_empty=0&hierarchical=true&orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID."&echo=0");
    if($this_category !='<li>No categories</li>')
    {
     echo '<h3>Products</h3>'; 
     echo '<ul>'.$this_category.'</ul>'; 
    }
}
?>
0 голосов
/ 27 марта 2013

1) Показать только подкатегории:

<?php
    // check if the page is viewed is a category page.
if (is_category())
{
$cur_cat = get_query_var('cat');
    if ($cur_cat) 
    {
        $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat . '&depth=1&title_li=&&show_count=1&hide_empty=0');
        echo '<ul>' . $new_cats . '</ul>';
    }
}
?>

2) Показать все основные категории:

<?php 
wp_list_categories('depth=1&title_li=&exclude=1&show_count=1&hide_empty=0');
?> 

3) Показать все категории + подкатегории, такие как древовидное меню:

Use FoCal plugin. 

4) посмотреть этот код тоже:

http://wpworks.wordpress.com/2011/01/13/displaying-categories-and-subcategories-tree-on-wordpress/
...