要显示当前类别的子类别,以及在存档页面和分类页面上显示父类别,请使用此解决方案:
[chapter text=第一步]
在 function.php 文件中添加一个函数:
if ( ! function_exists( 'fixcode_post_categories' ) ) { /** * 在所有帖子类型中显示子类别的功能 */ function fixcode_post_categories() { global $wp_query; //获取分类的名称。 由于在不同的地方 //以不同的方式接收,获取了两次。 //如果只需要特定的分类,只需 //设置 $taxonomy = 'my_tax'; 而不是下面的代码 $tax_1 = $wp_query->queried_object->taxonomies['0']; $tax_2 = $wp_query->query_vars['taxonomy']; if ($tax_1) { $taxonomy = $tax_1; } else { $taxonomy = $tax_2; } //我们获取类别 ID 以获取其嵌套的 ID。 如果 ID 为空,那么我们将获取父类别。 $term_id = get_queried_object()->term_id; if ($term_id) { $parent = ''; } else { $parent = 0; } //获取类别列表 $categories = get_terms($taxonomy, [ 'hide_empty' => false, 'child_of'=> $term_id, 'parent' => $parent ] ); //显示类别列表 echo '<div class="row">'; foreach ($categories as $category) { echo '<div class="col-md-3">'; echo '<div class="item-category">'; echo '<div class="category-name"><a href="'.get_term_link($category->term_id).'">'.$category->name.'</a></div>'; echo '</div>'; echo '</div>'; } echo '</div>'; } } //为类别操作添加输出 add_action( 'categories','fixcode_post_categories', 10 );
[chapter text=第二步]
现在,在模板中的正确位置,只需添加:
<?php do_action( 'categories' );?>
显示子类别就是这么容易,代码很容易理解。