Wie erhalte ich nur den ersten Begriff eines benutzerdefinierten Beitragstyps?.
Ich kann alles bekommen - kein Problem. Das, was ich benutze, um sie alle zu schnappen
<?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>
Würde mich über eine Antwort unter Verwendung meines Codes freuen, aber jede Hilfe ist sehr willkommen
Ich bin nicht sicher, was Sie mit "erster" Taxonomie meinen ... aber,
$terms = get_the_terms( $post->ID, 'mytaxonomy' );
gibt ein Array von Taxonomiebegriffsobjekten zurück
$term = array_pop($terms);
Würde dir den ersten Term im Array geben. Und dann:
echo '<a href="'.get_term_link($term->slug, 'mytaxonomy').'">'.$term->name.'</a>,'
(Möglicherweise möchten Sie einige if-Anweisungen einfügen, falls ein leeres Array oder ein Fehler zurückgegeben wird (siehe is_wp_error
)
Ab PHP 5.4 können Sie direkt dereferenzieren ein Array, um den ersten Ausdruck zu erhalten, können Sie dies einfach tun.
$first_term = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0];
var_dump( $first_term );
Wenn Sie eine bestimmte Eigenschaft ( sagen Sie den Termnamen ) des ersten Terms benötigen, können Sie Folgendes tun
$first_term_name = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0]->name;
var_dump( $first_term_name );
Nur eine Anmerkung, dies hat seine Nachteile, da Sie ein WP_Error
-Objekt erhalten, wenn die Taxonomie ungültig ist. Wenn das zurückgegebene Array leer ist, erhalten Sie auch eine Warnung zu undefinierten Array-Schlüsseln. Gehen Sie daher vorsichtig vor.
Es hat bei mir funktioniert. Es wird nur die erste Kategorie als Text ohne Anker angezeigt.
$terms = get_the_terms( $post->ID , 'your_custom_taxonomy' );
foreach( $terms as $term ) {
print $term->name;
break;
unset($term);
}
wie wäre es direkt auf den Schlüssel des Objekts zuzugreifen?
$terms = get_the_terms( $post->ID, 'sitecat' );
$first_term = $terms[0];
so können Sie auf das Objekt zugreifen.
echo $first_term->name;