138

我在我的 WordPress 主题文件夹中创建了一个 taxonomy.php 页面。我想获取函数的当前术语 id。我怎样才能得到这个?

get_query_var('taxonomy')只返回术语 slug,我想要 ID

4

9 回答 9

337

没关系!我找到了 :)

get_queried_object()->term_id;
于 2012-09-05T20:32:02.767 回答
63

简单易行!

get_queried_object_id()
于 2017-03-21T13:27:12.160 回答
44

这是所需的整个代码片段:

$queried_object = get_queried_object();
$term_id = $queried_object->term_id;
于 2012-09-22T01:15:39.980 回答
22

使用以下代码

这将打印您当前的分类名称和描述(可选)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>
于 2017-08-31T15:45:42.367 回答
15

如果您在分类页面中。

这就是您获取有关分类的所有详细信息的方式。

get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

这就是您获取分类 ID 的方式

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

但是,如果您在帖子页面中(分类 -> 孩子)

$terms = wp_get_object_terms( get_queried_object_id(), 'taxonomy-name');
$term_id = $terms[0]->term_id;
于 2019-01-11T21:43:47.167 回答
10
<?php 
$terms = get_the_terms( $post->ID, 'taxonomy');
foreach ( $terms as $term ) {
    $termID[] = $term->term_id;
}
echo $termID[0]; 
?>
于 2015-03-15T23:04:47.703 回答
4

wp_get_post_terms(),你会做这样的事情:

global $post;
$terms = wp_get_post_terms( $post->ID, 'YOUR_TAXONOMY_NAME',array('fields' => 'ids') );

print_r($terms);
于 2017-01-24T09:24:24.773 回答
2

这是你想要的术语 slug。看起来你可以得到这样的 id 如果这是你需要的:

function get_term_link( $term, $taxonomy = '' ) {
    global $wp_rewrite;

    if ( !is_object($term) ) {
        if ( is_int( $term ) ) {
            $term = get_term( $term, $taxonomy );
        } else {
            $term = get_term_by( 'slug', $term, $taxonomy );
        }
    }
于 2017-06-10T14:20:54.893 回答
0

这适用于所有页面类型,而不仅仅是分类术语档案

$category_id = get_the_category( get_the_ID());
$id          = get_category($category_id[0]->term_id);
于 2022-01-16T07:50:09.090 回答