Obține numele taxonomiei pentru postul curent
Taxonomia ierarhică a tipului de post personalizat 'projects' > 'projects_category'.
Două exemple de ierarhii 'projects_category' ar fi:
Marile Corporații > Prima Companie > Un Titlu de Post
Afaceri Mici > A Doua Companie > Alt Titlu de Post
Pot obține 'Prima Companie' cu următorul cod:
<?php $terms = get_the_terms($post->ID, 'projects_category');foreach($terms as $term){echo $term->name;} ?>
Cum pot afișa 'Marile Corporații' sau 'Afaceri Mici' în funcție de caz în single.php?

get_ancestors() ar trebui să facă exact ce ai nevoie:
Deci, ar trebui să faci ceva de genul:
$ancestors = get_ancestors($term_id, 'projects_category')

Dar funcționează get_ancestors() cu custom post type? Nu pare să funcționeze pentru mine...

Întrebarea ta nu are legătură cu CPT-urile - este despre taxonomii personalizate. De asemenea, verifică dacă folosești WP 3.1 sau mai nou

Folosesc ultima versiune WP 3.2.1. Am menționat că este vorba despre custom post types în primul paragraf al întrebării, dar poate este mai degrabă despre taxonomii personalizate? Oricum, răspunsul încă ne scapă.

S-ar putea să utilizați CPT-uri, dar ceea ce căutați este o modalitate de a parcurge o ierarhie de taxonomii personalizate - aceasta este semnificația 'termenilor' - elemente dintr-o taxonomie pe care le puteți atașa unui obiect post (indiferent dacă acel obiect post este un post normal, o pagină sau un tip de postare personalizat)

Am încercat asta <?php get_ancestors( $post->ID, 'projects_category' ); ?> care nu a returnat nimic. Poți să elaborezi răspunsul tău?

Am adăugat un exemplu de utilizare în răspunsul meu - utilizați ID-ul postării, când ar trebui să utilizați ID-ul termenului. Aceasta este o taxonomie, nu un post personalizat.

Deci asta va funcționa în single.php? Nu pare să producă nimic când am încercat. Cum am spus în întrebarea mea, am nevoie de asta în single.php, nu în template-ul de taxonomie.

@anu hai să continuăm această discuție în chat

Nu are nicio legătură cu template-ul pe care îl folosești. Obține ID-ul termenului care te interesează și trimite-l la get_ancestors. Codul pe care l-ai postat în întrebarea ta obține numele termenului, deci obține ID-ul termenului din acesta și folosește-l ca input pentru get_ancestors. Încerci să găsești termenul părinte, nu postarea părinte. Nu sunt sigur cum să fac asta mai clar.

Mulțumesc că ai încercat să explici, încă nu funcționează, dar te referi la ceva de genul acesta: <?php $term = wp_get_post_terms( $post->ID, 'projects_category' ); $term_id = $term[0]->name; $ancestors = get_ancestors($term_id, 'projects_category'); echo $ancestors; ?>

$term[0]->name nu este ID-ul termenului - ar trebui să folosești $term[0]->term_id

În prezent, în zona de administrare, doar termenul meu de taxonomie de subnivel (1st Company Name) este bifat. Termenul meu de taxonomie de nivel superior (Big Corporates) trebuie să fie și el bifat în panoul de administrare pentru a putea fi preluat în acest fel?

Când ambele sunt bifate, get_ancestors într-adevăr returnează atât categoria cât și categoria părinte în ordine alfabetică. Există vreo metodă de a extrage denumirile categoriilor din nivelurile superioare și inferioare separat? Astfel încât una să poată fi pusă într-un H1 și cealaltă într-un H2.

Dacă citești acest articol despre tipurile personalizate de postări, ar trebui să te ajute: Revizuirea tipurilor personalizate de postări, taxonomiilor personalizate și a permalinkurilor

Nu a ajutat, nu am văzut nimic acolo care să arate cum să obții numele taxonomiei root în template-ul single. În comentarii sunt oameni care întreabă cum să facă asta, dar nicio soluție nu a fost postată. Cred că acest lucru nu este ușor de realizat pentru un custom post type.

Am marcat răspunsul lui anu și explicația despre get_ancestors, dar asta este cum am rezolvat eu:
<?php
$terms = wp_get_object_terms($post->ID, 'projects_category', array('orderby' => 'term_id', 'order' => 'ASC') );
if ( !empty( $terms ) ) :
$project = array();
foreach ( $terms as $term ) {
$project[] = $term->name;
}
echo '<h1>'.$project[0].'</h1>';
echo '<h2>'.$project[1].'</h2>';
endif;
?>
