Taxonomiearchiv + Abfrageanhänge = doppelte Ergebnisse

Ich versuche, die Anhänge eines bestimmten Begriffs (in seiner Archivseite) zu bekommen. Aber die Ergebnisse zeigen die resultierenden Bilder 5 Mal anstelle von einem.

Ich habe mehrere Schleifen auf dieser Seite – eine, um verwandte Beiträge anzuzeigen, eine andere, um verwandte Produkte anzuzeigen (benutzerdefinierte Post), und diese, um verwandte Bilder anzuzeigen. Benutzerdefinierte Posts und Posts funktionieren gut, aber ich kann die Anhänge nicht richtig anzeigen. : S

term_id; $args = array( 'post_status' => 'inherit', 'numberposts' => 0, 'post__not_in' => array_merge($do_not_duplicate,get_option( 'sticky_posts' )), 'post_type' => 'attachment', ); $args['tax_query'] = array( array( 'taxonomy' => 't-arte', 'terms' => $term_id, 'field' => 'id', ), ); ?>    
<?php $attachments = get_posts( $args ); if ( $attachments ) { foreach ( $attachments as $attachment ) { echo '
'; the_attachment_link( $attachment->ID, true ); echo '
'; } }?>

Ainda não temos nenhuma imagem relacionada :(

Solutions Collecting From Web of "Taxonomiearchiv + Abfrageanhänge = doppelte Ergebnisse"

Ich denke, das Problem ist, dass Sie die falschen Argumente an die $attachments Abfrage übergeben, was dazu führt, dass Sie die beabsichtigten Posts in der $attachments Abfrage nicht bekommen.

Hier ist was du tust:

 $args = array( 'post_status' => 'inherit', 'numberposts' => 0, 'post__not_in' => array_merge($do_not_duplicate,get_option( 'sticky_posts' )), 'post_type' => 'attachment', ); $args['tax_query'] = array( array( 'taxonomy' => 't-arte', 'terms' => $term_id, 'field' => 'id', ), ); $attachments = get_posts( $args ); 

Sie fragen also alle Posts ab, die Posttyp- attachment , und nicht nur die Posts, die an den aktuellen Post angehängt sind, die in $media_query .

So durchlaufen Sie $media_query :

 foreach ($media_query as $media_query) : 

(Hinweis: schlechte Form. Versuchen Sie etwas wie foreach ( $media_query as $media ) : stattdessen.)

Sie müssen die ID des aktuellen post_parent als post_parent an Ihre $attachments post_parent . Etwas Einfaches könnte sein:

 $attachments = get_posts( array( 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_parent' => $media_query->ID 'numberposts' => 0 ) ); 

Ich hab es geschafft! Das Ergebnis zeigt alle Anhänge in einem bestimmten Begriff innerhalb der Archivseite des Begriffs an. Danke Chip!

 < ?php $queried_object = get_queried_object(); $term_id = $queried_object->term_id; global $wp_query; $original_query['tax_query'] = array( array( 'taxonomy' => 't-arte', 'terms' => $term_id, 'field' => 'id', ),); $original_query = (array) $wp_query; $attach_query = array( 'post_type'=> array( 'attachment' ), 'post_status' => array( null )); $args = array_merge($original_query['query_vars'], $attach_query); $media_query = new WP_Query( $args )?> < ?php if($media_query->have_posts()) : while ($media_query->have_posts() ) : $media_query->the_post(); if( $post->ID == $do_not_duplicate ) continue; ?> 
< ?php echo wp_get_attachment_link($attachment->ID, 'bigger-thumb');?>
< ?php endwhile; else: ?> //do stuff