get_the_term_list không có liên kết trong 3.1


13

Chức năng nào sẽ hiển thị các phân loại tùy chỉnh được liên kết với một bài đăng dưới dạng văn bản?

Tôi hiện đang sử dụng get_the_term_list, hoạt động tuyệt vời cho một trang đơn lẻ nhưng không nhiều khi sử dụng phân loại trong thẻ tiêu đề permalink archive-postype.php.

Câu trả lời:


15

wp_get_object_terms () trả về các thuật ngữ được liên kết với một đối tượng (ví dụ: một bài đăng hoặc một trang hoặc bài đăng tùy chỉnh) dưới dạng văn bản (thông thường trong một mảng).

Từ trang Codex cho wp_get_object_terms ()

$productcategories = wp_get_object_terms($post->ID, 'productcategories');


Hãy nhớ rằng các kết quả truy vấn không được lưu trữ như thế nào get_the_terms(). Xem trang codex để biết thông tin.
Dylan

22

Tuy nhiên @anu đã đúng, tôi đã tìm ra bạn có thể gọi hàm php là dải_tags để loại bỏ các thẻ của giá trị trả về.

$terms = get_the_term_list( $post->ID, 'tags' );
$terms = strip_tags( $terms );

Trông rất đơn giản và thực hiện công việc. Có bất kỳ nhược điểm sử dụng này?
Mohsin

@Mohsin Một nhược điểm là nó loại bỏ tất cả các thẻ, không chỉ là thẻ <a>. Tuy nhiên, bạn có thể ngăn các thẻ mong muốn bị tước, như vậy:$terms = strip_tags( $terms, '<li>' );
David


0

Tôi cần điều tương tự và đã thử giải pháp Zack hoạt động tuyệt vời. Chẳng hạn, nếu bạn chỉ cần thuật ngữ để đặt id hoặc lớp css. Chỉ có một sự giải thích về giải pháp, chức năng được gọi là xấu, đúng là "get_the_term_list".

Tôi cho thấy ví dụ của tôi:

$terms = get_the_term_list( $post->ID, 'your_taxonomy_name' );
$terms = strip_tags( $terms );

0
$terms = wp_list_pluck( get_the_terms( get_the_ID(), 'your_taxonomy' ), 'name');

Ở đây $ terms là một mảng, vì vậy bạn có thể sử dụng vòng lặp foreach.

foreach( $terms as $term ) {
  echo $term;
}
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.