如何迭代Wordpress类别以按侧栏上的类别创建过滤器复选框

时间:2013-11-30 03:59:58

标签: php wordpress

enter image description here

在我的sidebar.php中,我想在侧边栏上创建过滤器复选框,如上图所示。因此,我的过滤器复选框将采用这种分层格式:

动物

  • 长臂猿
  • 犀牛
  • 猩猩

广告活动

  • 释放熊
  • 红毛猩猩项目
  • 银色长臂猿Projet

我查找了codex,并在数组对象 get_categories 上找到了几个有用的属性。

然而,我正在努力想出自己的数据结构算法来产生上述结果,所以我对数据结构算法的了解相当薄弱,而且我没有多少练习,特别是在PHP中。我只是想知道社区中有没有人像我现在想做的那样做了类似的功能,并能告诉我它是如何完成的?

期待您的反馈。

感谢。

1 个答案:

答案 0 :(得分:0)

终于能够做到这一点。

这是我的代码结构。

<h2>Sidebar</h2>

<?php 

//Retrieve top-level categories
$parent_args = array(
  'orderby' => 'name',
  'parent' => 0,
  'hide_empty' => 0
);

//Retrieve first-level categories
$firstchild_args = array(
    'orderby' => 'name',
    'parent' => 0, //needs dynamic code here
    'hide_empty' => 0
);


$parent_categories = get_categories($parent_args);


foreach($parent_categories as $parent_category){


//create main headings for other categories other than Uncategorized.
if($parent_category->name!="Uncategorized"){
    $category_label = "Filter By ";
    echo '<h3 style="font-size: 20px; color: rgb(255, 255, 255);text-shadow: 2px 3px 0px rgb(0, 0, 0);">'.$category_label.''.$parent_category->name.'</h3>';

    //fetch the parent category's id
    $firstchild_args['parent'] = $parent_category->term_id;
    $firstchild_categories = get_categories($firstchild_args);

    //fetch all the first level children categories
    foreach($firstchild_categories as $firstchild_category){
        $output = "";
        $output = $output."<label class=\"checkbox\">";
        $output = $output."    <input type=\"checkbox\"><span style='font-size: 17px; color: rgb(255, 255, 255);text-shadow: 2px 3px 0px rgb(0, 0, 0);'>".$firstchild_category->name;
        $output = $output."</label>";

        echo $output;
    }

}

}

?>

现在必须要这样做,直到我重构它以制作更好的代码结构。

接下来为每个选中的复选框创建帖子事件...:)