Wordpress小部件如何只根据选定的父类别显示子类别?

时间:2010-10-24 17:21:59

标签: widget wordpress-plugin wordpress

我想知道是否有人知道要修改现有类别小部件以仅显示所选父类别中的类别。 例如:

如果我的类别结构如下:

  • 计算机
    • 笔记本
    • 台式机
    • 软件
  • 电子
    • 照相机
    • 音频/视频

如果某人正在查看“计算机”类别中的帖子,我希望侧栏中的“类别”小部件仅显示“笔记本电脑”,“桌面”和“软件..

有没有办法完成这项工作?是否有人熟悉插件可能会这样做? 谢谢!

3 个答案:

答案 0 :(得分:5)

如何使用这样的东西? 在单个页面上,您可以在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

答案 1 :(得分:3)

感谢您的帮助。通过这样做,我能够让它工作......

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

答案 2 :(得分:0)

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/