如何通过鼻涕获得一个分类术语名称?

时间:2011-05-05 作者:Carson

如果我知道一个分类学术语slug,我如何才能得到该术语的名称?

3 个回复
最合适的回答,由SO网友:tollmanz 整理而成

您需要的功能是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
codex很好地解释了这一功能:https://developer.wordpress.org/reference/functions/get_term_by/

SO网友:EkoJR

taxonomy is unavailable/unknown.

在我的情况下,当使用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循环。

Note: 我试图从术语Slug中搜索相关分类法(ID或Slug),但不幸的是,我在WordPress中找不到任何可用的方法。

SO网友:mahesh chhetri

谢谢,这对我有用。

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

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_the_terms restrict output

我有一个与分类法国家/地区关联的自定义post类型假日。在我唯一的假期。php,我使用分类法显示在标题中。例如,在西班牙度假(西班牙是税收)很少,但也可能发生,假日可以用两个分类术语来表示。使用get\\u the\\u术语时,标题显示出现问题。有人给我更好的解决方案。我的代码如下$taxonomy = \'country\'; $terms=get_the_terms($post->ID,$taxonomy); i