Làm thế nào để có được một tên thuật ngữ phân loại bằng sên?


22

Nếu tôi biết một thuật ngữ phân loại sên, làm thế nào tôi có thể có được tên đó?


bạn có muốn tạo một liên kết, tiêu đề, ???
xLRDxREVENGEx

Câu trả lời:


38

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 $termviệ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


Bạn đánh bại tôi vào nó. Đây chính xác là những gì tôi sẽ làm.
xLRDxREVENGEx

1
Điều gì nếu bạn không có sên phân loại?
EkoJR

2

Đ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.

Giải pháp cho trống $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 );

Kết quả

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.


0

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;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.