有没有办法从wordpress Permalink中获取一个类别,然后从中获取每个父类别?我正在努力做面包屑。。。
wp_list_categories((对其进行了预格式化,并为您提供了我想要删除的未分类部分。
$category_id = wp_list_categories();
echo $category_id ;
我测试的类别是:
Categories
Test Prep
Test Taking Skills
Study Skills
Uncategorized
我做到了,但你如何删除未分类?
$categories_list = get_the_category_list( __( ', ', 'mytheme' ) );
$category_id = get_cat_ID($categories_list);
$categories = get_categories(array('parent_of' => $category_id));
foreach($categories as $category) {
echo '<a href="' . get_category_link( $category->term_id ) . '">' . $category->name.'</a><br> ';
}
以下是实现这一目标的方法:
get_the_category_list()
您需要使用过滤器the_category_list
。将其添加到你的functions.php中。如果你查看get_the_category_list()
的内部,它会使用这个过滤器在输出之前构建类别:
add_filter( 'the_category_list', static function( $categories ){
// Loop through all the categories that are found
foreach ( $categories as $index => $category ) {
// if the category object slug equals "uncategorized"
if ( $category->slug === 'uncategorized' ) :
// remove it from the list of categories
unset($categories[$index]);
endif;
}
// return the categories
return $categories;
});
wp_list_categories()
这个比较简单,因为您可以传递exclude
参数并使用slug:
wp_list_categories([
'exclude' => 'uncategorized',
]);
您需要"未分类"类别吗?
如果没有,您可以将另一个类别术语设置为标准类别:Wordpress Backend to"Settings"->"Writing"->"Default Post Category"并选择一个类别术语。
之后,您可以将其从类别中删除,因此不会出现在get_the_category_list中,因为它已不存在。