Câu trả lời:
Các chức năng bạn đang tìm kiếm là get_term_by
. Bạn sẽ sử dụng nó như vậy:
<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>
Điều này dẫn đến $term
việc là một đối tượng có chứa những điều sau đây:
term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count
Codex thực hiện một công việc tuyệt vời giải thích chức năng này: http://codex.wordpress.org/Function_Reference/get_term_by
Điều này cung cấp một câu trả lời khi phân loại không có sẵn / không xác định .
Trong trường hợp của tôi, khi sử dụng get_term_by , đã có một số trường hợp chỉ có Sên hạn (Không có ID kỳ hạn hoặc Phân loại tư duy). Mà dẫn tôi đến đây. Tuy nhiên, câu trả lời được cung cấp không giải quyết được vấn đề của tôi.
$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'
Như sau, khái niệm này nhận được một mảng $taxonomies
, các vòng lặp qua mảng và IF get_term_by()
trả về một kết quả khớp, sau đó nó ngay lập tức thoát ra khỏi vòng lặp foreach.
Lưu ý: Tôi đã thử tìm kiếm một phương pháp để có được phân loại liên quan (ID hoặc Slug) từ Term Slug, nhưng tiếc là tôi không thể tìm thấy bất cứ thứ gì có sẵn trong WordPress.
cảm ơn, điều này đã làm việc cho tôi
Tôi đã tạo một hàm và sử dụng nó nhiều lần khi cần thiết.
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;
}