Yanıtlar:
Aradığınız işlev get_term_by
. Bunu böyle kullanırsın:
<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>
Bu $term
, aşağıdakileri içeren bir nesne olarak sonuçlanır :
term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count
Kodeks bu işlevi açıklayan iyi bir iş çıkarır: http://codex.wordpress.org/Function_Reference/get_term_by
Bu, taksonomi olmadığında / bilinmediğinde bir cevap verir .
Benim durumumda, get_term_by kullanıldığında , sadece Terim Sümüklü seyin olduğu bazı örnekler vardı (Terim Kimliği veya Taksonomi Yok). Beni buraya yönlendirdi. Ancak verilen cevap sorunumu çözmedi.
$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'
Aşağıdaki gibi, kavram bir dizi alır, dizi içinde $taxonomies
döngüler olur ve IF get_term_by()
bir eşleşme döndürür, sonra hemen foreach döngüsünden çıkar.
Not: İlişkili taksonomiyi (ID veya Slug) Term Slug'dan almak için bir yöntem aramaya çalıştım, ancak ne yazık ki WordPress'te mevcut bir şey bulamıyorum.
teşekkürler, bu benim için çalıştı.
Bir fonksiyon yarattım ve tekrar tekrar gerektiğinde kullandım.
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;
}