Jawaban:
Fungsi yang Anda cari adalah get_term_by
. Anda akan menggunakannya seperti itu:
<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>
Ini menghasilkan $term
objek yang berisi berikut ini:
term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count
Codex bekerja dengan sangat baik untuk menjelaskan fungsi ini: http://codex.wordpress.org/Function_Reference/get_term_by
Ini memberikan jawaban ketika taksonomi tidak tersedia / tidak diketahui .
Dalam kasus saya, ketika menggunakan get_term_by , ada beberapa contoh di mana hanya ada Term Slug (No Term ID atau Taxonomy). Yang membawaku ke sini. Namun, jawaban yang diberikan tidak cukup menyelesaikan masalah saya.
$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'
Sebagai berikut, konsep mendapat array $taxonomies
, loop melalui array, dan IF get_term_by()
mengembalikan kecocokan, kemudian langsung keluar dari loop foreach.
Catatan: Saya mencoba mencari metode untuk mendapatkan taksonomi terkait (ID atau Slug) dari Term Slug, tetapi sayangnya saya tidak dapat menemukan apa pun yang tersedia di WordPress.
terima kasih, ini berhasil untuk saya.
Saya membuat fungsi dan menggunakannya lagi dan lagi sesuai kebutuhan.
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;
}