分類用語スラッグを知っている場合、その用語の名前を取得するにはどうすればよいですか。
あなたが探している関数は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
分類法が利用できない場合、これは答えを提供します/ unknown 。
私の場合、 get_term_by を使用すると、Term Slugしかない場合がありました(Term 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
の配列を取得し、その配列をループ処理し、IF get_term_by()
が一致を返すと、すぐにforeachループから抜けます。
注: Term Slugから関連する分類法(IDまたはSlug)を取得するための方法を検索しようとしましたが、残念ながらWordPressで使用できるものが見つかりません。
おかげで、これは私のために働いた。
関数を作成し、それを必要に応じて何度でも使用しました。
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;
}