So erhalten Sie ein Vorschaubild vom Post-Anhang in dieser Schleife

Ich verwende diesen Code, um die meisten populären Beiträge basierend auf der Anzahl der Aufrufe anzuzeigen, aber ich habe keine Bilder im Post-Inhalt. Ich habe alle Bilder per Anhang angehängt (Galerie).

Wie ersetze ich dieses “Thimthumb” Thumbnail mit dem ersten Anhang dieser aufgelisteten Posts?

Solutions Collecting From Web of "So erhalten Sie ein Vorschaubild vom Post-Anhang in dieser Schleife"

Wenn ich Ihre Frage richtig verstanden habe, möchten Sie das erste angehängte Bild zu jedem Beitrag abrufen und die Miniaturansicht verwenden, anstatt den Inhalt für eingebettete Bilder zu analysieren und timthumb zu verwenden?

Wenn dies der Fall ist, stellen Sie auf der Seite mit den Medienoptionen Ihre Miniaturgröße auf die erforderliche Größe (60 x 60) ein. Stellen Sie sicher, dass Sie die Anhänge in der gewünschten Reihenfolge ziehen und verwenden Sie den folgenden Code (beachten Sie, dass ich kein Fan von bin query_posts, ich bevorzuge lieber get_posts).

 $args = array( 'meta_key' => 'views', 'orderby' => 'meta_value_num', 'order' => 'DESC', 'posts_per_page' => 9 ); $popular_posts = get_posts( $args ); if ( $popular_posts ) { echo '

Popular Posts

'; echo '
    '; foreach ( $popular_posts as $popular_post ) { $kids_args = array( 'post_parent' => $popular_post->ID, 'post_type' => 'attachment', 'post_status' => null, 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'posts_per_page' => 1 ); $kids = get_posts( $kids_args ); echo '
  • '; if ( $kids ) { foreach ( $kids as $kid ) { $img = wp_get_attachment_image_src( $kid->ID ); printf( '', get_permalink( $popular_post->ID ), esc_attr( get_the_title( $popular_post->ID ) ), $img[0], $img[1], $img[2] ); } } else { printf( '', get_permalink( $popular_post->ID ), esc_attr( get_the_title( $popular_post->ID ) ), get_bloginfo( 'template_url' ) . '/images/default.jpg', 60, 60 ); } echo '
  • '; } echo '
'; }

Ich schreibe aus dem Gedächtnis, nicht in der Lage, es jetzt zu testen, also hoffentlich funktioniert es!

Sie müssen alle Anhänge über get_posts abrufen und dann wie gewünscht formatieren . Siehe das Beispiel auf der Seite, die ich verlinkt habe.

UPDATE: Sie müssen Ihren Code mit folgendem ersetzen:

  < ?php if ( $cnt > 0 ) { ?> < ?php echo '';?> < ?php } else { ?> < ? $args = array( 'post_type' => 'attachment', 'numberposts' => 1, 'post_status' => null, 'post_parent' => $post->ID ); $attachments = get_posts($args); if ($attachments) { foreach ( $attachments as $attachment ) { ?>  < ?php echo '';?> < ? } } } ?> 

und ja, für jeden Beitrag, den Sie additionals abfragen. Um Ihr Problem zu beheben, können Sie transient oder ein DB Caching Plugin / Caching Plugin verwenden