it-swarm.com.de

Tags einer bestimmten Kategorie in ausgewählten Feldern anzeigen

Ich möchte alle Tags in ausgewählter Form anzeigen, die aus Beiträgen stammen, die einer bestimmten Kategorie zugewiesen wurden.

Ich benutze den folgenden Code, um jedes Tag in einer ausgewählten Form zu generieren

<div>
<?php
echo "<select onChange=\"document.location.href=this.options[this.selectedIndex].value;\">";
echo "<option>By product</option>\n";
foreach (get_tags() as $tag)
{
  echo "<option value=\"";
  echo get_tag_link($tag->term_id);
  echo "\">".$tag->name."</option>\n";
}
      echo "</select>"; ?>
</div>

Kann mich jemand darauf hinweisen, wie ich einfach die Tags anzeigen kann, die aus allen Posts stammen, die der Videokategorie zugewiesen sind?

Jede Hilfe sehr geschätzt

1
rikardo85

Aus meinem Verständnis der Frage und Ihrem Kommentar:

Ich möchte alle Tags anzeigen, die aus Beiträgen stammen, die der bestimmten Kategorie zugewiesen wurden

Sie müssten zuerst alle Posts abrufen, denen dieses Tag zugewiesen ist, die Posts durchlaufen und die eindeutigen Tags in einem Array speichern. Durchlaufen Sie das Array und zeigen Sie es in der Auswahlliste an. Das einzige, was Sie tun müssten, ist $reltaed_term_id = 7 durch die ID des Tags zu ersetzen, auf das Sie abzielen möchten.

<?php
    $reltaed_term_id        = 7;
    $unique_related_tags    = array();

    $related = new WP_Query( array(
        'post_type'     => 'post',
        'posts_per_page'=> -1,
        'fields'        => 'ids',
        'cat '          => $reltaed_term_id,
    ) );

    if( $related->have_posts() ) {
        foreach( $related->posts as $post_id ) {
            $tags = wp_get_post_tags( $post_id );
            if( ! empty( $tags ) ) {
                foreach( $tags as $tag ) {
                    if( empty( $unique_related_tags ) || ! array_key_exists( $tag->term_id, $unique_related_tags ) ) {
                        $unique_related_tags[ $tag->term_id ] = $tag->name;
                    }
                }
            }
        }

        wp_reset_postdata();
    }

    if( ! empty( $unique_related_tags ) ) :
?>

        <div>
            <select onChange="document.location.href=this.options[this.selectedIndex].value;">
                <option>By product</option>

              <?php foreach( $unique_related_tags as $tag_id => $tag_name ) : ?>

                <option value="<?php echo get_tag_link( $tag_id ); ?>"><?php echo $tag_name; ?></option>

              <?php endforeach; ?>

            </select>
        </div>

<?php endif; ?>

Ich habe den obigen Code nicht getestet. Lassen Sie mich wissen, wenn Sie auf Probleme stoßen.

2
Howdy_McGee