Pregunta

¿Está esta característica integrada en WordPress? No vi nada dentro del códice.

Codex.wordpress.org/function_reference/wp_tag_cloud

Tengo algunas páginas que son específicas de la categoría y me gustaría mostrar todas las etiquetas asociadas con esas publicaciones.

Encontré esto, pero no estoy seguro de si es apropiado o si existe una mejor manera (fuente)(Método viejo !!!!):

<?php
    query_posts('category_name=html');
    if (have_posts()) : while (have_posts()) : the_post();
        $posttags = get_the_tags();
        if ($posttags) {
            foreach($posttags as $tag) {
                $all_tags_arr[] = $tag -> name;
            }
        }
    endwhile; endif; 

    $tags_arr = array_unique($all_tags_arr);
?>
    <ul>
<?php
    foreach($tags_arr as $tag){
        echo '<li>'.$tag.'</li>';
    }
?>
</ul>
<?php wp_reset_query(); ?>

Actualización (simplificado) :::

Para hacer una lista de etiquetas desde una categoría específica, este código es mucho mejor (solo cambie el nombre de la categoría):

:: recientemente actualizado nuevamente debido a un error de bucle ::

    <ul>
                <?php
                    query_posts('category_name=html');
                    if (have_posts()) : while (have_posts()) : the_post();

                        if( get_the_tag_list() ){
                            echo $posttags = get_the_tag_list('<li>','</li><li>','</li>');
                        }

                    endwhile; endif; 

                    wp_reset_query(); 
                ?>
</ul>

Incluso duro, puedo tener una solución, actualice esto si surge una nueva.

¿Fue útil?

Solución

Creo que el método que has encontrado es la única forma en que puedes lograr lo que estás buscando. Tal vez pueda modificar algunas líneas, pero el concepto es correcto.

Por el momento, no creo que haya una manera de filtrar las etiquetas como lo haría con una función central de WordPress.

Otros consejos

No conseguí que el código anterior funcionara mi instalación de WordPress. Sin embargo, logré ajustarlo hasta que funcionó. Aquí está mi ajuste:

$catid = get_cat_ID(single_cat_title("",false));
$catobj = get_category($catid);
$catslug = $catobj->slug;
$all_tags_arr = array();
query_posts('category_name='.$catslug);
if (have_posts()) : while (have_posts()) : the_post();
    $posttags = get_the_tags();
    if ($posttags) {
        foreach($posttags as $tag) {
            $all_tags_arr[] = $tag -> term_id;
        }
    }
endwhile; endif; 

$tags_arr = array_unique($all_tags_arr);

$tagcloud_args = array(
    'include'   =>  implode(',',$tags_arr),
);

wp_tag_cloud( $tagcloud_args ); 
wp_reset_query();

Aquí hay un ejemplo mucho más fácil ... solo cambia el nombre de la categoría y oye, ya que estás hecho. Las etiquetas asociadas se imprimirán en un formato de lista.

<?php query_posts('category_name=html'); if (have_posts()) : while (have_posts()) : the_post();

    $posttags = get_the_tags();

    if ($posttags) {
        foreach($posttags as $tag) {
            $all_tags[] = $tag -> name;
        }
    }
    endwhile; endif; 

    //This snippet removes any duplicates.
    $tags_unique = array_unique($all_tags); 

    echo '<ul>';
        foreach($tags_unique as $unique) {
          echo  '<li>'.$unique.'</li>';
        }
    echo '</ul>';

    wp_reset_query();

?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top