web-dev-qa-db-ja.com

説明付きの投稿タグを返す

特定の投稿で使用されているタグを返すためのショートコードを作成しましたが、それを使用して説明を返す方法を見つけることはできません。

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

私は試した

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

しかし明らかに正しくないこと

おまけとして、私は別の関数として説明付きのリストを返しますが、タグアーカイブへのリンクはありません。これは通常の動作です。

助けてくれてありがとう

1

これが、カスタム分類法でループする方法です。

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');

あなたはpost_tagをあなたのカスタム分類法で置き換えることができます

$terms = get_terms( 'post_tag' ); 

タグの説明を取得するには、以下の方法のいずれかを使用できます。

 echo $term->description;

または

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

タグを操作しようとしている場合は、代わりに get_the_tags() をループで使用できます。

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;
}

これで、タグの名前、ID、説明などがわかりました。あなたのニーズに基づいて、あなたが望むものは何でも選んでください。

0
Jack Johansson