WordPress: agregando selectores de clase a the_tags(); producción

2 minutos de lectura

¿Cómo hago para que the_tags() emita cada etiqueta para que se le asigne un selector de clase único? Entonces, por ejemplo: the_tags() actualmente genera algo como esto:

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

Sin embargo, me gustaría generar algo como esto:

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

¿Es posible hacer esto? ¿Si es así, cómo? ¡Gracias!

avatar de usuario
marc p

¡Funcionó, gracias! Esto es lo que hice:

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

  • Puede marcar mi respuesta como aceptada o la suya para que otras personas se beneficien al buscar este mismo problema. Puede leer cómo funciona SO en Preguntas frecuentes. stackoverflow.com/faq

    – GmonC

    24 de julio de 2010 a las 2:22

  • ¿Podrías publicar todo el código que resuelve este problema?

    – Р. r.

    10 de febrero a las 21:25

También puede sobrecargar el trabajo de get_the_tags(); función. Simplemente agregue el siguiente código a su functions.php archivo de 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');

  • Agradable. me gusta la solucion

    – algo ahora

    9 oct 2017 a las 16:18

este código de 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; ?>

Usar obtener_las_etiquetas en su lugar, haga un bucle for y cree su propio marcado.

¿Ha sido útil esta solución?