Frage

Ist diese Funktion in WordPress integriert? Ich habe nichts im Codex gesehen.

codex.wordpress.org/function_reference/wp_tag_cloud

Ich habe ein paar Seiten, die kategorienspezifisch sind, und ich möchte alle mit diesen Beiträgen verbundenen Tags zeigen.

Ich habe das gefunden, aber ich bin mir nicht sicher, ob es richtig ist oder ob ein besserer Weg existiert (Quelle)(alte Methode !!!!):

<?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(); ?>

Update (vereinfacht) :::

Um eine Liste von Tags aus einer bestimmten Kategorie zu erstellen, ist dieser Code viel besser (ändern Sie einfach den Kategoriennamen):

:: Kürzlich erneut aktualisiert wegen eines Schleifenfehlers ::

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

Sogar hart habe ich eine Lösung. Bitte aktualisieren Sie dies, wenn ein neuer kommt.

War es hilfreich?

Lösung

Ich denke, die Methode, die Sie gefunden haben, ist die einzige Möglichkeit, das zu erreichen, wonach Sie suchen. Vielleicht können Sie einige Zeilen ändern, aber das Konzept ist richtig.

Im Moment glaube ich nicht, dass es eine Möglichkeit gibt, Tags zu filtern, da Sie eine Core -WordPress -Funktion verwenden würden.

Andere Tipps

Ich habe den obigen Code nicht dazu gebracht, meine Installation von WordPress zu bearbeiten. Ich habe es jedoch geschafft, es zu optimieren, bis es funktioniert hat. Hier ist meine Optimierung:

$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();

Hier ist ein viel einfacheres Beispiel ... ändere einfach den Kategoriennamen und hey presto du hast fertig. Die zugehörigen Tags werden in einem Listenformat ausgedruckt.

<?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();

?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top