2010-07-23 9 views
7

Come posso ottenere the_tags() per l'output di ogni tag in modo che venga assegnato con un selettore di classe univoco? Così, per esempio: the_tags() attualmente uscite qualcosa di simile:Wordpress: aggiunta di selettori di classe a the_tags(); output

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

Tuttavia, mi piacerebbe uscita qualcosa di simile:

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

E 'possibile fare questo? Se é cosi, come? Grazie!

risposta

1

Utilizzare get_the_tags invece, fare un ciclo for e creare il proprio markup.

11

Ha funzionato, grazie! Questo è quello che ho fatto:

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

È possibile contrassegnare la mia risposta accettata o il vostro modo che altri utenti trarrebbero beneficio durante la ricerca di questo stesso problema. Puoi leggere come funziona SO in FAQ. http://stackoverflow.com/faq – GmonC

3

Inoltre è possibile sovraccaricare il funzionamento della funzione get_the_tags();. Basta aggiungere il codice seguente al file functions.php tema:

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

Bello. Mi piace la soluzione. – somethingnow

3

questo codice da 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; ?> 
Problemi correlati