Obține primul termen al postării
Cum pot obține doar primul termen dintr-un tip de postare personalizat.
Pot să le obțin pe toate - fără probleme. Iată ce folosesc pentru a le extrage pe toate:
<?php foreach ($terms as $term) {echo '<a href="'.get_term_link($term->slug, 'sitecat').'">'.$term->name.'</a>,';} ?> >> <a href="<?php the_permalink(); ?>"><?php the_title('', ''); ?></a></h2></span>
Aș aprecia un răspuns folosind codul meu, dar orice ajutor este binevenit

Nu sunt sigur ce înțelegi prin prima taxonomie... dar,
$terms = get_the_terms( $post->ID, 'mytaxonomy' );
returnează un array de obiecte ale termenilor de taxonomie, deci
$term = array_pop($terms);
ar oferi primul termen din array. Și apoi:
echo '<a href="'.get_term_link($term->slug, 'mytaxonomy').'">'.$term->name.'</a>,'
(S-ar putea să dorești să incluzi câteva instrucțiuni if, în cazul în care este returnat un array gol sau o eroare (vezi is_wp_error
)

ok.. eroarea a fost de partea mea - nu răspunsul tău ;) mulțumesc mult, prietene

array_pop va elimina și va returna ultimul element din array. Folosește array_shift pentru a obține primul element. Reține că ambele funcții vor scurta array-ul original.

Începând cu PHP 5.4, puteți dereferenția direct un array, astfel încât pentru a obține primul termen, puteți face simplu.
$first_term = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0];
var_dump( $first_term );
Dacă aveți nevoie de o proprietate specifică (de exemplu, numele termenului) al primului termen, puteți face următoarele
$first_term_name = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0]->name;
var_dump( $first_term_name );
EDIT
Doar o notă, acest lucru are și dezavantajele sale deoarece veți primi un obiect WP_Error
dacă taxonomia este invalidă. De asemenea, dacă array-ul returnat este gol, veți primi și o avertizare de cheie de array nedefinită, așa că folosiți acest lucru cu grijă.

Pentru a rezuma toate răspunsurile anterioare, iată un fragment de cod helper pe care îl folosesc. Efectuează toate verificările necesare și acceptă aceleași argumente ca și funcția get_the_terms().
function getTheFirstTerm($post, $taxonomy) {
$post = get_post( $post );
if ( ! $post ) {
return false;
}
$terms = get_the_terms( $post->ID, $taxonomy );
if (!empty($terms) && !is_wp_error( $terms )) {
// Această linie returnează efectiv primul termen disponibil dacă există.
return $terms[0];
}
return false;
}
Notă suplimentară. Această funcție, pentru simplitate, returnează doar obiectul termenului sau false, ceea ce este necesar în majoritatea cazurilor mele. Puteți totuși returna WP_Error dacă aveți nevoie să verificați acest lucru în fluxul de execuție, de exemplu:
if (!empty($terms)) {
if(!is_wp_error( $terms )) {
// Această linie returnează efectiv primul termen disponibil dacă există.
return $terms[0];
} else {
return $terms; // Acest lucru returnează obiectul WP_Error
}
}
Mai mult, puteți sorta termenii înainte de a returna primul, astfel încât să obțineți primul obiect termen după term_id, slug, name, menu order și așa mai departe.

Ce "a funcționat pentru tine"? Notă laterală: break;
va într-adevăr opri execuția instrucțiunii, unset
nu va fi niciodată declanșat și doar primul element va fi procesat.

unset( $term );
ar trebui să fie după bucla ta foreach
, și nu în interiorul ei :-)
