web-dev-qa-db-fra.com

Renvoyer les tags de poste avec description

J'ai un shortcode qui retourne les tags utilisés pour un message particulier, mais je ne vois pas comment renvoyer la description.

function returnpost_tags(){
       return get_the_tag_list('',', ',' ');
   }
add_shortcode('post-tags', 'returnpost_tags');

J'ai essayé

return get_the_tag_list('',', ',' $description'); 

mais évidemment quelque chose ne va pas

en bonus, je voudrais alternativement renvoyer la liste avec la description, mais sans les liens vers l'archive des tags, qui est le comportement normal

merci pour l'aide

1
Trip Vendors Inc

Voici comment vous pouvez boucler avec une taxonomie personnalisée.

function returnpost_tags(){
// get tags by post ID 
$post_ID = get_the_ID();
// here, you can add any custom tag
$terms = get_the_terms( $post_ID , 'post_tag' ); 
echo '<ul>';

foreach ( $terms as $term ) {

// The $term is an object, so we don't need to specify the $taxonomy.
$term_link = get_term_link( $term );
$term_ID = $term->term_id;
// If there was an error, continue to the next term.
if ( is_wp_error( $term_link ) ) {
    continue;
}

echo '<li><a href="' . esc_url( $term_link ) . '">' . $term->name . '</a></li>';
echo term_description($term_ID);

   // another option
   // echo  '<p>' . $term->description . '</p>';

}

echo '</ul>';
}
add_shortcode('post-tags', 'returnpost_tags');

Vous pouvez remplacer post_tag par votre taxonomie personnalisée

$terms = get_terms( 'post_tag' ); 

Pour obtenir la description de la balise, vous pouvez utiliser l'une des méthodes ci-dessous.

 echo $term->description;

ou

 echo term_description($term->term_id);
1
Ronald

Si vous essayez de travailler avec les balises, vous pouvez utiliser get_the_tags() dans la boucle:

function my_tag_shortcode(){
    // Get a list of tags
    $tags = get_the_tags();
    $data ='';
    // Run a loop to output the data
    foreach ($tags as $tag) { 
        $data .= '<a href="'.get_tag_link($tag->term_id).'">'. $tag->name .'</a><span>'. $tag->description .'</span>';
    }
    return $data;
}

Vous avez maintenant le nom de la balise, son identifiant, sa description, etc. Choisissez ce que vous voulez, en fonction de vos besoins.

0
Jack Johansson