Cómo mostrar las etiquetas de una entrada
Estoy convirtiendo una plantilla HTML en un tema de WordPress y estoy teniendo problemas para mostrar las etiquetas de las entradas dentro del archivo functions.php. Me gustaría agregar el siguiente código en el archivo de funciones con el código HTML. He estado intentando durante varios días y ya he consultado el codex pero nada de lo que pruebo funciona.
<div class="tags">
<a href="#" rel="tag">etiqueta 1</a> <a href="#" rel="tag">etiqueta 2</a> <a href="#" rel="tag">etiqueta 3</a> <a href="#" rel="tag">etiqueta 4</a>
</div>
¿Alguien puede ayudarme con esto?

Creo que estás buscando la función get_tags(). Necesitarías colocarla en el archivo single-post.php
(o single.php
si tu tema no tiene un single-post.php
) (para encontrar el archivo de plantilla correcto siempre puedes consultar la Jerarquía de Plantillas de WordPress).
Para mostrar una lista de etiquetas con la función mencionada anteriormente, necesitarías usar algo como:
<?php $tags = get_tags(); ?>
<div class="tags">
<?php foreach ( $tags as $tag ) { ?>
<a href="<?php echo get_tag_link( $tag->term_id ); ?> " rel="tag"><?php echo $tag->name; ?></a>
<?php } ?>
</div>

Aquí hay una forma de agregar etiquetas de publicación después del contenido solo en publicaciones individuales usando el filtro the_content
en una función personalizada desde tu archivo de funciones. Utiliza the_tags
function tags_after_single_post_content($content) {
// Verificar si es una publicación individual y la consulta principal
if( is_singular('post') && is_main_query() ) {
// Mostrar las etiquetas con formato
$tags = the_tags('<div class="entry-meta">Etiquetado con: ',' • ','</div><br />');
// Concatenar el contenido original con las etiquetas
$content .= $content . $tags;
}
return $content;
}
// Añadir el filtro al contenido
add_filter( 'the_content', 'tags_after_single_post_content' );
Resultado:

Código correcto:
function tags_after_single_post_content($content) {
$posttags = get_the_tags();
if ($posttags) {
$array = [];
foreach($posttags as $tag) {
$array[] = '<a href="/tag/' . $tag->slug . '/">' . $tag->name . '</a>';
}
$content .= 'Etiquetas: ' . implode(', ', $array) . '<br>';
}
return $content;
}
add_filter( 'the_content', 'tags_after_single_post_content' );
Razón por la cual esta respuesta es incorrecta: porque the_tags debe usarse dentro de The Loop y the_tags no devuelve nada, por lo que el resto del código no hace nada. En esta respuesta, get_the_tags devuelve un array de instancias de etiquetas, así que podemos agregarlas al contenido.

Muestra una lista de etiquetas con enlaces a cada una y una clase específica para cada etiqueta:
$tags = get_tags();
$html = '<div class="post_tags">';
foreach ( $tags as $tag ) {
$tag_link = get_tag_link( $tag->term_id );
$html .= "<a href='{$tag_link}' title='Etiqueta {$tag->name}' class='{$tag->slug}'>";
$html .= "{$tag->name}</a>";
}
$html .= '</div>';
echo $html;

Debes usar este código al final del archivo functions.php:
function tags_after_single_post_content($content) {
$posttags = get_the_tags();
if ($posttags) {
$array = [];
foreach($posttags as $tag) {
$array[] = '<a href="/tag/' . $tag->slug . '/">' . $tag->name . '</a>';
}
$content .= 'Etiquetas: ' . implode(', ', $array) . '<br>';
}
return $content;
}
add_filter( 'the_content', 'tags_after_single_post_content' );

Tal como está escrita actualmente, tu respuesta no es clara. Por favor, [edítala] para añadir detalles adicionales que ayuden a otros a entender cómo esto responde a la pregunta formulada. Puedes encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda.

Hice este código de Arterm con un pequeño cambio
function tags_after_single_post_content($content) {
$posttags = get_tags();
if ($posttags) {
$array = [];
foreach($posttags as $tag) {
$array[] = '<a href="/tag/' . $tag->slug . '/">' . $tag->name . '</a>';
}
$content .= '<div class="wulanhastag">Etiquetas: ' . implode(', ', $array) . '</div>';
}
return $content;
}
add_filter( 'the_content', 'tags_after_single_post_content' );
