the_tags
s'affiche par défaut en tant qu'URL. Je dois l'afficher sous forme de texte brut à insérer dans l'attribut HTML.
<?php
$tag = the_tags('');
?>
<div class="image-portfolio" data-section="<?php echo $tag ?>">
Je suis heureux que vous ayez compris, mais vous trouverez ci-dessous une modification sémantique rapide (échanger votre utilisation de $tag
singular et de $tags
pluriel l'aidera à lire plus fidèlement ce qu'il est en train de faire; ce n'est pas différent sur le plan fonctionnel).
J'ai également ajouté des cas à l'intérieur et à l'extérieur de la boucle, ainsi qu'un conditionnel pour que vous n'essayiez pas de chercher une boucle quand il n'y a pas de balises.
//We are inside the Loop here. Other wise we must pass an ID to get_the_tags()
//returns array of objects
$tags = get_the_tags();
//make sure we have some
if ($tags) {
//foreach entry in array of tags, access the tag object
foreach( $tags as $tag ) {
//echo the name field from the tag object
echo $tag->name;
}
}
$tags = get_the_tags();
if ($tags) {
foreach( $tags as $tag ) {
echo $tag->name;
}
}
$id = '10';
$tags = get_the_tags( $id );
if ($tags) {
foreach( $tags as $tag ) {
echo $tag->name;
}
}
Dans la boucle , get_the_tags()
utilise l'identifiant de publication actuel. En dehors de la boucle, vous devez lui donner un identifiant. Dans les deux cas, il retourne un tableau sur WP_TERM
objets pour chaque terme associé à la publication correspondante.
[0] => WP_Term Object
(
[term_id] =>
[name] =>
[slug] =>
[term_group] =>
[term_taxonomy_id] =>
[taxonomy] => post_tag
[description] =>
[parent] =>
[count] =>
)
Vous pouvez accéder à chaque valeur de la même manière que ci-dessus, à savoir:
$tags = get_the_tags();
if ($tags) {
foreach( $tags as $tag ) {
echo $tag->term_id;
echo $tag->name;
echo $tag->slug;
echo $tag->term_group;
echo $tag->term_taxonomy_id;
echo $tag->taxonomy;
echo $tag->description;
echo $tag->parent;
echo $tag->count;
}
}
Ok je le découvre
$tag = get_the_tags();
foreach($tag as $tags) {
echo $tags->name;
}
J'adore les codes à une seule ligne, n'est-ce pas?
<?php echo implode(' ,' wp_get_post_tags( get_the_ID(), array('fields' => 'names') ) ); ?>
Cela affichera les balises sous forme de chaîne séparée par des virgules:
echo join(', ', array_map(function($t) { return $t->name; }, get_the_tags()));