Php wp_list_类别的自定义函数,用于将术语列为复选框
我需要为wp_list_类别编写一个自定义函数,因此它们不是显示链接的层次列表,而是一个复选框列表,父项显示为h3标记 最终输出如下所示 下面是我的WordPress模板文件中的PHP代码Php wp_list_类别的自定义函数,用于将术语列为复选框,php,wordpress,checkbox,filtering,custom-taxonomy,Php,Wordpress,Checkbox,Filtering,Custom Taxonomy,我需要为wp_list_类别编写一个自定义函数,因此它们不是显示链接的层次列表,而是一个复选框列表,父项显示为h3标记 最终输出如下所示 下面是我的WordPress模板文件中的PHP代码 <?php //list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin) $taxonomy = 'tags'; $orderby
<?php
//list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin)
$taxonomy = 'tags';
$orderby = 'name';
$show_count = 1; // 1 for yes, 0 for no
$pad_counts = 0; // 1 for yes, 0 for no
$hierarchical = 1; // 1 for yes, 0 for no
$title = '';
$args = array(
'taxonomy' => $taxonomy,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title
);
?>
<ul class="categories">
<?php wp_list_categories( $args ); ?>
</ul>
下面是
输出的HTML
<ul class="categories">
<li class="cat-item cat-item-21"><a href="http://tandsdev.co.uk/portfoliotags/client/" >Client</a> (0)
<ul class='children'>
<li class="cat-item cat-item-22"><a href="http://tandsdev.co.uk/portfoliotags/bmw/" >BMW</a> (3)
</li>
</ul>
</li>
<li class="cat-item cat-item-25"><a href="http://tandsdev.co.uk/portfoliotags/section/" >Section</a> (0)
<ul class='children'>
<li class="cat-item cat-item-27"><a href="http://tandsdev.co.uk/portfoliotags/automotive/" >Automotive</a> (3)
</li>
<li class="cat-item cat-item-28"><a href="http://tandsdev.co.uk/portfoliotags/property/" >Property</a> (2)
</li>
</ul>
</li>
<li class="cat-item cat-item-26"><a href="http://tandsdev.co.uk/portfoliotags/service/" >Service</a> (0)
<ul class='children'>
<li class="cat-item cat-item-29"><a href="http://tandsdev.co.uk/portfoliotags/branding/" >Branding</a> (3)
</li>
<li class="cat-item cat-item-30"><a href="http://tandsdev.co.uk/portfoliotags/email/" >Email</a> (3)
</li>
<li class="cat-item cat-item-31"><a href="http://tandsdev.co.uk/portfoliotags/website/" >Website</a> (2)
</li>
</ul>
</li>
</ul>
- (0)
- (3)
- (0)
- (3)
- (2)
- (0)
- (3)
- (3)
- (2)
我希望每个术语都显示为复选框代码,这将形成一个过滤系统,可以在这里看到
服务
网站
电子邮件
品牌创建
部门
汽车
财产
我仍然希望保持复选框的层次结构,如上面的示例所示,但是h3标记中的标题是父术语,我不希望这些作为复选框,我该如何做呢?:) 也许您可以使用
get\u categories()
而不是wp\u list\u categories()
首先,通过使用parent=>0
获得顶级类别,并在h3标记中显示类别名称。然后,您可以使用parent=>$category->term\u id
获取子类别,并显示复选框
使用以下示例:
$args = array(
'taxonomy' => 'tags',
'parent' => 0, // get top level categories
'orderby' => 'name',
'order' => 'ASC',
'hierarchical' => 1,
'pad_counts' => 0
);
$categories = get_categories( $args );
foreach ( $categories as $category ){
echo '<h3>'. $category->name . '</h3>';
$sub_args = array(
'taxonomy' => 'tags',
'parent' => $category->term_id, // get child categories
'orderby' => 'name',
'order' => 'ASC',
'hierarchical' => 1,
'pad_counts' => 0
);
$sub_categories = get_categories( $sub_args );
foreach ( $sub_categories as $sub_category ){
echo '<label><input type="checkbox" id="type-'. $sub_category->name . '" rel="'. $sub_category->name . '">'. $sub_category->name . '</label>';
}
}
$args=array(
“分类法”=>“标记”,
'parent'=>0,//获取顶级类别
'orderby'=>'name',
“订单”=>“ASC”,
“层次结构”=>1,
“pad_计数”=>0
);
$categories=get_categories($args);
foreach($categories作为$category){
回显“.$category->name.”;
$sub_args=数组(
“分类法”=>“标记”,
'parent'=>$category->term\u id,//获取子类别
'orderby'=>'name',
“订单”=>“ASC”,
“层次结构”=>1,
“pad_计数”=>0
);
$sub_categories=get_categories($sub_args);
foreach($sub_类别作为$sub_类别){
回显“.$sub_category->name.”;
}
}
您可以这样使用wp\u category\u checklist()
:
<form>
<?php
$args = array(
'descendants_and_self' => 0,
'selected_cats' => false,
'popular_cats' => false,
'walker' => null,
'taxonomy' => 'tags',
'checked_ontop' => true
);
wp_terms_checklist( 0, $args );
?>
<input type="submit" value="Submit">
</form>
如需更多帮助:
太棒了,效果很好,非常感谢:)
<form>
<?php
$args = array(
'descendants_and_self' => 0,
'selected_cats' => false,
'popular_cats' => false,
'walker' => null,
'taxonomy' => 'tags',
'checked_ontop' => true
);
wp_terms_checklist( 0, $args );
?>
<input type="submit" value="Submit">
</form>