如果我知道一个分类术语term,那么如何获得该术语的名称?

评论

您是否要创建链接,标题,???

#1 楼

您正在寻找的功能是get_term_by。您可以这样使用它:

<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>


这将导致$term是包含以下内容的对象:

term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count


法典在解释此功能方面做得很好:http://codex.wordpress.org/Function_Reference/get_term_by

评论


你击败了我。这正是我要做的。

–xLRDxREVENGEx
2011年5月5日下午5:16

如果没有分类标准怎么办?

– EkoJR
17年5月7日在1:42

您可以使用get_term($ term_id);如果您只有ID。

–加文
20年7月11日,9:32

#2 楼

当分类法不可用/未知时,这提供了一个答案。

在我的情况下,使用get_term_by时,在某些情况下仅存在术语Slug(无术语ID或分类法)。导致我来到这里。但是,提供的答案并不能完全解决我的问题。

$taxonomy为空的解决方案


// We want to find the ID to this slug.
$term_slug = 'foo-bar';
$taxonomies = get_taxonomies();
foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
    // If term object is returned, break out of loop. (Returns false if there's no object)
    if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
        break;
    }
}
$term_id = $term_object->name;

echo 'The Term ID is: ' . $term_id . '<br>';
var_dump( $term_object );


结果

The Term ID is: 32
object(WP_Term)
  public 'term_id' => int 32
  public 'name' => string 'Example Term'
  public 'slug' => string 'example-term'
  public 'term_group' => int 0
  public 'term_taxonomy_id' => int 123
  public 'taxonomy' => string 'category'
  public 'description' => string ''
  public 'parent' => int 0
  public 'count' => int 23
  public 'filter' => string 'raw'


如下所示,该概念获取$taxonomies的数组,循环遍历该数组,如果get_term_by()返回匹配项,则立即退出foreach循环。

注意:我尝试搜索一种方法来从术语Slug中获取关联的分类法(ID或Slug),但不幸的是,我无法在WordPress中找到可用的任何内容。

#3 楼

谢谢,这对我有用。

我创建了一个函数,并根据需要反复使用。

function helper_get_taxonomy__by_slug($term_slug){
    $term_object = "";
    $taxonomies = get_taxonomies();
    foreach ($taxonomies as $tax_type_key => $taxonomy) {
        // If term object is returned, break out of loop. (Returns false if there's no object);
        if ($term_object = get_term_by('slug', $term_slug, $taxonomy)) {
            break;
        }else{
            $term_object = "Warn! Helper taxonomy not found.";
        }
    }
    return $term_object;
}


评论


成功时,您应该返回与get_term_by相同的类型:(WP_Term | array | false)WP_Term实例(或数组)。如果不存在$ taxonomy或未找到$ term,则将返回false。

– xnagyg
20 May 25 '17:58