2010-07-23 15 views
7

Jak uzyskać the_tags() do wyprowadzania każdego tagu tak, aby był przypisany z unikalnym selektorem klasy? Tak na przykład: the_tags() obecnie wyświetla coś takiego:Wordpress: Dodawanie selektorów klas do the_tags(); output

<a href="http://myblog.com/tag/kittens" rel="tag">kittens</a> 

Jednak chciałbym wyjściowe coś takiego:

<a href="http://myblog.com/tag/kittens" rel="tag" class="tag-kittens">kittens</a> 

to możliwe, aby to zrobić? Jeśli tak to jak? Dzięki!

Odpowiedz

1

Zamiast tego użyj pętli for i utwórz własny znacznik.

11

Zadziałało, dziękuję! Oto co zrobiłem:

<?php 
$post_tags = get_the_tags(); 
if ($post_tags) { 
    foreach($post_tags as $tag) { 
    echo '<a href="'; echo bloginfo(); 
    echo '/?tag=' . $tag->slug . '" class="' . $tag->slug . '">' . $tag->name . '</a>'; 
    } 
} 
?> 
+4

Można zaznaczyć moją odpowiedź jako zaakceptowana lub twoja więc inni ludzie skorzystaliby przy szukaniu tego taki sam problem. Możesz przeczytać, jak działa SO w FAQ. http://stackoverflow.com/faq – GmonC

3

Możesz również przeciążać działanie funkcji get_the_tags();. Wystarczy dodać kolejny kod do pliku functions.php motyw:

// add custom class to tag 
function add_class_the_tags($html){ 
    $postid = get_the_ID(); 
    $html = str_replace('<a','<a class="class-name"',$html); 
    return $html; 
} 
add_filter('the_tags','add_class_the_tags'); 
+0

Nice. Podoba mi się rozwiązanie. – somethingnow

3

ten kod z www.lawturn.com

/* SlSlib tags add class */ 
<?php if(has_tag()) : ?> 

    <?php 
    $tags = get_the_tags(get_the_ID()); 
     foreach($tags as $tag){ 
     echo '<a href="'.get_tag_link($tag->term_id).'" rel="tag" class="tag-'.$tag->name.'">'.$tag->name.'</a>'; 
    } ?> 

<?php endif; ?>