如何使 WordPress 显示指定的分类目录

display-special-category

我们知道 wordpress 分类目录小工具会把整个自定义目录都显示出来,这显然不符合一些对文章分类目录管理的需要。本篇文章就对分类目录小工具的功能进行一定的改造,使得在定制分类目录小工具时通过指定具体的目录名称来显示该目录下的分级子目录。

具体的实现方法就是使用 wordpress 提供的分类目录小工具的检索参数钩链,也就是在小工具从数据库中提取分类目录前使用 “钩链” 修改相应的过滤参数,从而获取指定的分类目录下的分级子目录,代码如下:

function set_category_name_arg( $args, $instance ) {
        if( ! empty( $instance['title'] ) ) {
                $args['name'] = $instance['title'];
        }
        $categories = get_categories( $args );
        if( $categories ) {
                $args['child_of'] = $categories[0]->term_id;
                $args['name'] = null;
        }
        return $args;
}
add_filter( 'widget_categories_args', 'set_category_name_arg', 10 , 2 );

把这段代码添加到 functions.php 中。然后在 wordpress 后台管理工具中定制分类目录小工具的时候,把标题名称填写成要显示的对应的目录名称即可。

另外,分类目录小工具显示目录的方式是一个目录占一行,这样随着使用的目录逐渐增多后,会浪费较多的布局空间,而且也不美观。这可以通过使用后台工具的 “外观 – 自定义 – 额外 CSS” 功能添加相应的 CSS 样式来解决,代码如下:

.widget_categories ul {
	list-style: none;
	margin: 5px;
}
.widget_categories .cat-item {
	display: inline;
}

发表评论

邮箱地址不会被公开。 必填项已用*标注