Làm thế nào để có được tất cả các nguyên tắc phân loại của một loại bài?


45

Làm thế nào tôi có thể có được phân loại của một loại bài?

Nếu tôi có một loại bài đăng eventvà tôi cần tìm ra danh sách các nguyên tắc phân loại được đính kèm với loại bài đăng đó. Làm thế nào để tôi tìm thấy chúng?

Câu trả lời:


36

Này các bạn, tôi nghĩ rằng tôi đã nhận nó! Sau khi xem xét một vài hàm trong tệp taxonomy.php trong WordPress, tôi đã tìm thấy hàm get_object_taxonomies();này đã thực hiện thủ thuật :)

Đây là chức năng

function get_post_taxonomies($post) {
    // Passing an object
    // Why another var?? $output = 'objects'; // name / objects
    $taxonomies = get_object_taxonomies($post, 'objects');

    /*// Passing a string using get_post_type: return (string) post, page, custom...
    $post_type  = get_post_type($post);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    /*// In the loop with the ID
    $theID      = get_the_ID();
    $post_type  = get_post_type($theID);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    // You can also use the global $post

    // edited to fix previous error $taxonomies
    // edited to force type hinting array
    return (array) $taxonomies; // returning array of taxonomies
}

2
Xem phần này để biết thêm thông tin: codex.wordpress.org/Function_Reference/get_object_taxonomies
Manny Fleurmond

wow ... thật tốt khi biết về get_object_taxonomies (). nó chỉ giúp tôi chiếm quyền điều khiển template_redirect
helgatheviking

Xin chào thankx vì điều này nhưng làm thế nào để đặt hàng chúng bằng ID thay vì NAME?
dh47

Cách đơn giản nhất sẽ được chỉ loại họ sử dụng một forhoặc foreachvòng lặp.
Sisir

Có, tôi đang tìm nạp bằng vòng lặp foreach nhưng tôi nhận được thứ tự theo tên$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) ); foreach( $taxonomies as $taxonomy ) : // Gets every "category" (term) in this taxonomy to get the respective posts $terms = get_terms( $taxonomy ); ?> <ul class="specials"><?php foreach( $terms as $term ) : ?> <li><h2 ><?php echo $term->name; ?></h2>
dh47

9

get_clists sẽ thực hiện công việc.

get_categories('taxonomy=taxonomy_name&type=custom_post_type'); 

(Tôi nghĩ rằng nếu tôi hiểu đúng câu hỏi!)
thêm vào

3
Điều tôi không có bất kỳ tên phân loại nào, đó là những gì tôi muốn tìm hiểu. Tôi chỉ có tên của loại bài viết. Theo tên loại bài đăng tôi muốn tìm hiểu tất cả các phân loại được đính kèm với nó. Dù sao cũng cảm ơn bạn!
Sisir

1

Bạn đã thử bất cứ điều gì? một cái gì đó như thế này?

<?php 

$args=array(
  'object_type' => array('event') 
); 

$output = 'names'; // or objects
$operator = 'and'; // 'and' or 'or'
$taxonomies=get_taxonomies($args,$output,$operator); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    echo '<p>'. $taxonomy. '</p>';
  }
}
?>

1
Nhìn vào get_taxonomies();chức năng trên codex nhưng nó có tài liệu rất kém và không biết làm thế nào tôi có thể vượt qua các loại bài đăng.
Sisir

Xin lỗi, mã này đang trả về tất cả các phân loại đã đăng ký trong wordpress.
Sisir
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.