Ich habe einige Probleme mit diesem Beispiel-Widget-Code. Ich möchte alle Bilder (abzüglich der Miniaturansicht des Beitrags) von einer Seite namens "Galerie" abrufen, aber aus irgendeinem Grund werden alle hochgeladenen Bilder von der gesamten Website abgerufen.
Wie würde ich vorgehen, um das Post-Thumbnail von dieser Abfrage auszuschließen?
query_posts('pagename=gallery');
if (have_posts()) :
echo "<ul class='recentwidget group photowidget'>";
while (have_posts()) : the_post();
$args = array(
'post_type' => 'attachment',
'numberposts' => 1,
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts( $args );
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
echo '<li class="left imageshadow photolarge">';
echo wp_get_attachment_image( $attachment->ID, 'full' );
echo '</li>';
}
}
endwhile;
endif;
wp_reset_query();
query
attachments
Dean Elliott
quelle
quelle
query_posts
nicht ohne Nachteile . Haben Sie versucht,get_posts
stattdessen zu verwenden? Aber dann denke ich, dass die Verwendung von The Loop in diesem Fall übertrieben ist. Codieren Sie einfach die Seiten-ID in Ihrem Anruf anget_posts
(der sich derzeit in The Loop befindet).Antworten:
Verwenden Sie get_children
Ich habe diesen Code verwendet, um alle Bilder aus einer Seitengalerie in der ausgewählten Reihenfolge zu extrahieren. Sie können diesen Code in die Schleife aufnehmen oder eigenständig verwenden. Wählen Sie einfach den entsprechenden post_parent-Code (siehe unten im Codebeispiel).
Dieses Beispiel zeigt alle Bilder, die der Seiten-ID 1 zugeordnet sind.
Suchen Sie die Post-ID, aus der Sie Bilder extrahieren möchten, und fügen Sie sie in dieses Argument ein:
'post_parent' => 1
(Ersetzen Sie die 1 durch Ihre Seiten-ID.)Sie können auch verwenden:
Wenn Sie get_children in einer Schleife verwenden und die Post-ID aus der zurückgegebenen Post-ID abrufen möchten.
Wenn Sie das als vorgestellten Bild ausgewählte Bild ausschließen möchten, würde ich eine
if
Anweisung überprüfen lassen, ob die Bild-URL der vorgestellten Bild-URL entspricht.Hoffe das hilft! :) :)
quelle
Am einfachsten ist die Verwendung
get_attached_media()
. Es gibt viele verschiedene Möglichkeiten, von denen fast alle hier behandelt werdenquelle