Làm cách nào để lấy id thuật ngữ phân loại hiện tại trên WordPress?


120

Tôi đã tạo một trang taxonomy.php trong thư mục chủ đề WordPress của mình. Tôi muốn lấy id thuật ngữ hiện tại cho một hàm. Làm thế nào tôi có thể nhận được điều này?

get_query_var('taxonomy') chỉ trả về thuật ngữ slug, tôi muốn ID

Câu trả lời:


304

Đừng bận tâm! Tôi đã tìm thấy nó :)

get_queried_object()->term_id;

4
Tuyệt quá! Đây lưu lại cho tôi rất nhiều thời gian: D
MavBzh

Cảm ơn rât nhiều!
Anahit Ghazaryan

26
Bạn cũng có thể chỉ sử dụng get_queried_object_id()để lấy ID. Toàn bộ đoạn mã sẽ là$term_id = get_queried_object_id();
David

Câu trả lời tốt . Gần đây tôi thấy một câu hỏi trong trao đổi ngăn xếp WordPress. Bạn có thể vui lòng kiểm tra. wordpress.stackexchange.com/questions/214453/...

Cảm ơn bạn rất nhiều
FaISalBLiNK

42

Đơn giản và dễ dàng!

get_queried_object_id()

3
get_queried_object_id () được giới thiệu trong 3.1.0 (ngày 23 tháng 2 năm 2011) và phải là câu trả lời chính xác cho câu hỏi được hỏi. > taxonomy.phptrang trong thư mục mẫu wordpress của tôi, tôi muốn lấy hiện tại term idcho một chức năng.
Pea

1
Vâng, câu trả lời này là hoàn hảo
Gendrith

39

Đây là toàn bộ đoạn mã cần thiết:

$queried_object = get_queried_object();
$term_id = $queried_object->term_id;

14

Chỉ cần sao chép dán mã dưới đây!

Thao tác này sẽ in tên và mô tả phân loại hiện tại của bạn (tùy chọn)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>

11

Nếu bạn đang ở trang phân loại.

Đó là cách bạn nhận được tất cả các chi tiết về phân loại.

get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

Đây là cách bạn lấy id phân loại

$termId = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) )->term_id;

Nhưng nếu bạn đang ở trong trang đăng (taxomony -> child)

$terms = wp_get_object_terms( get_queried_object_id(), 'taxonomy-name');
$term_id = $terms[0]->term_id;

7
<?php 
$terms = get_the_terms( $post->ID, 'taxonomy');
foreach ( $terms as $term ) {
    $termID[] = $term->term_id;
}
echo $termID[0]; 
?>


1

Đó là thuật ngữ slug bạn muốn. Có vẻ như bạn có thể lấy id như thế này nếu đó là thứ bạn cần:

function get_term_link( $term, $taxonomy = '' ) {
    global $wp_rewrite;

    if ( !is_object($term) ) {
        if ( is_int( $term ) ) {
            $term = get_term( $term, $taxonomy );
        } else {
            $term = get_term_by( 'slug', $term, $taxonomy );
        }
    }
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.