web-dev-qa-db-fra.com

Obtenez le premier post

Comment puis-je obtenir uniquement le premier terme d'un type d'article personnalisé.
Je peux tout avoir - pas de problème. C'est ce que j'utilise pour les attraper tous

<?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>

J'apprécierais une réponse en utilisant mon code mais toute aide est la bienvenue

9
Sagive SEO

Je ne suis pas sûr de ce que vous entendez par "première" taxonomie ... mais,

$terms = get_the_terms( $post->ID, 'mytaxonomy' );

retourne un tableau d'objets de terme de taxonomie, donc

$term = array_pop($terms);

Vous donnerait le premier terme du tableau. Et alors:

echo '<a href="'.get_term_link($term->slug, 'mytaxonomy').'">'.$term->name.'</a>,'

(Vous voudrez peut-être inclure certaines instructions if si un tableau vide ou une erreur est renvoyé (voir is_wp_error )

22
Stephen Harris

À partir de PHP 5.4, vous pouvez directement déréférencer un tableau, donc pour obtenir le premier terme, vous pouvez simplement le faire.

$first_term = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0];
var_dump( $first_term );

Si vous avez besoin d’une propriété spécifique ( dites le nom nom ) du premier terme, vous pouvez effectuer les opérations suivantes:

$first_term_name = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0]->name;
var_dump( $first_term_name );

MODIFIER

Juste une note, cela a ses inconvénients car vous obtiendrez un objet WP_Error si la taxonomie est invalide. De même, si le tableau renvoyé est vide, vous obtiendrez également un avertissement de clé de tableau non défini. Utilisez-le avec précaution.

4
Pieter Goosen

Cela a fonctionné pour moi. Il n'apporte que la première catégorie sous forme de texte, pas d'ancre.

$terms = get_the_terms( $post->ID , 'your_custom_taxonomy' ); 
foreach( $terms as $term ) { 
    print $term->name;
    break;
    unset($term);
}
0
Pankaj

que diriez-vous d'accéder directement à la clé d'objet?

$terms = get_the_terms( $post->ID, 'sitecat' );
$first_term = $terms[0];

afin que vous puissiez accéder à l'objet.

echo $first_term->name;
0
Lafif Astahdziq