我们在开发wordpress主题的时候经常要获取分类目录id,根据所在页面的位置获取分类id的方法各不一样下面由小编具体介绍。

1,在内配分类页面 category.php

a,全局变量$cat直接存储着当前的分类id

global  $cat;
var_dump($cat);

b,通过get_query_var函数获取分类目录id

get_query_var('cat')

c,通过get_queried_object函数获取分类目录id

$cat_id = get_queried_object()->term_id;
echo $cat_id;
get_queried_object_id() //直接返回当前分类id

2,在自定义分类页面taxonomy或taxonomy-slug.php。slug是指自定义分类法名称,如我注册了一个叫”product_category”的自定义分类法。那文件名应该是taxonomy-product_category.php。

a,通过全局变量获取分类id

global $term; //分类的别名
global $taxonomy;//自定义分类法名称
$tterm_obj = get_term_by( 'slug', $term, $taxonomy );
$term_id = $tterm_obj->term_id;

b,通过get_queried_object函数获取分类id

get_queried_object()->term_id;
get_queried_object_id()

c,通过get_term_by函数获取分类id

$termId = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) )->term_id;
var_dump($termId);

3,在普通文章页面 single.php

a,通过get_the_terms函数获取文章所属分类id

$term_id = get_the_terms($post,'category')[0]->term_id;
echo $term_id;

b,通过get_the_category获取文章所属id

$term_id = get_the_category()[0]->term_id;
echo $term_id;

4,在自定义文章类型页面 single-slug.php。slug是指自定义文章类型名称,假如我注册了一个叫”product”的自定义文章类型那文件名应是single-product.php

$taxonomies = get_the_taxonomies($post);
if ($taxonomies) {
    $taxonomy = array_keys($taxonomies)[0];
    $terms = get_the_terms($post->ID, $taxonomy);
    echo $terms[0]->term_id;
}