Bir post tipindeki tüm taksonomiler nasıl elde edilir?


45

Bir posta türü taksonomisini nasıl alabilirim?

Bir yazı tipim varsa eventve bu yazı tipine ekli taksonomilerin listesini bulmam gerekiyor. Onları nasıl bulurum?

Yanıtlar:


36

Hey beyler sanırım anladım! WordPress'teki taxonomy.php dosyasındaki birkaç fonksiyona baktıktan sonra get_object_taxonomies();hileyi yapan bu fonksiyonu buldum :)

İşte fonksiyon

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
}


vay ... get_object_taxonomies () hakkında bilmek güzel. bu sadece
kaçırmama

Merhaba, bunun için teşekkür ederim ama NAME yerine kimliğine göre nasıl sıralanabilirler?
dh47

En kolay yol, sadece a forveya foreachloop kullanarak sıralamak olacaktır .
Sisir

Evet, foreach döngüsünü kullanıyorum ancak $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>
adlarına

9

get_categoriler işi yapacak.

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

(Sanırım soruyu doğru
anlamışsam

3
Mesele şu ki, herhangi bir taksonomi ismim yok, bulmak istediğim de bu. Sadece yazı tipinin adını yazdım. Yazı tipi adına göre, ona bağlı tüm taksonomiyi bulmak istiyorum. Yine de teşekkürler!
Sisir,

1

Bir şey denedin mi? böyle bir şey mi?

<?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
get_taxonomies();Kodeks üzerindeki işleve baktım ancak belgelerinin çok zayıf olduğu ve yazı türlerini nasıl geçirebileceğim konusunda hiçbir fikri yoktu.
Sisir

Üzgünüz, bu kod tüm kayıtlı taksonomilerini wordpress olarak iade ediyor.
Sisir,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.