我一直试图在没有运气的情况下实现以下目标。
我在wordpress中有下一个类别:
Book (level 1)
Chapter 1 (level 2)
Article 1 (leve 3)
Article 2 (leve 3)
Article 3 (leve 3)
Chapter 2 (level 2)
Article 1 (leve 3)
Article 2 (leve 3)
Article 3 (leve 3)
我的所有帖子都有3个类别,每个级别一个。我想要的只是获取当前帖子中第3级的类别并在页面的标题中使用它,但我也希望获得第2级的类别并在侧栏中使用它。
我尝试了get_the_categories()
这个功能,但它向我展示了父母和孩子的所有类别,我不能只选择特定级别的一个。
我的代码是:
function proof( $atts ) {
$categories = get_categories( array(
'orderby' => 'name',
'parent' => 0,
'hierarchical' => 0,
'depth' => 1
) );
foreach ( $categories as $category ) {
printf( '<a href="%1$s">%2$s</a><br />',
esc_url( get_category_link( $category->term_id ) ),
esc_html( $category->name )
);
}
}
add_shortcode("proof", "proof");
答案 0 :(得分:0)
您可以使用以下代码检索当前类别。
$category = get_queried_object();
$current_cat= $category->term_id;
您可以在get_categories
功能
$categories = get_categories( array(
'orderby' => 'name',
'parent' => 0,
'hierarchical' => 0,
'depth' => 1,
'child_of' => $current_cat
) );
答案 1 :(得分:0)
我一直在尝试使用此代码来获取父类别
///Function to get the parent category
function parent( $atts ) {
global $post;
$categories = get_the_category($post->ID);
$top_cat_obj = array();
foreach($categories as $cat) {
if ($cat->parent == 0) {
$top_cat_obj[] = $cat;
}
}
return $top_cat_name[0]->name;
}
add_shortcode("parent", "parent");
之后,我使用了几乎相同的代码来获得该类别的孩子:
function children( $atts ) {
global $post;
$categories = get_the_category($post->ID);
//get top level category of current post
$top_cat_obj = array();
foreach($categories as $cat) {
if ($cat->parent != 0) {
$top_cat_obj[] = $cat;
}
}
return $top_cat_obj[0]->name;
}
add_shortcode("children", "children");