Schleife zum Abrufen von 3 post_thumbnail-Instanzen aus 3 letzten benutzerdefinierten Post-Typen namens “portfolio”

Ich versuche, 3 post_thumbnails von einem benutzerdefinierten Beitragstyp “Portfolio” auf meiner Homepage Vorlage anzuzeigen. Also eins von Post ‘A’, eins von Post ‘B’ und eins von Post ‘C’ Das Bild von Post A wird als post_thumbnumble (‘large’) gesetzt, während B & C auf post_thumbumbail gesetzt werden muss (‘thumbnail’ ).

Ich habe eine benutzerdefinierte WP_Query-Schleife festgelegt und wie erwartet durchläuft es drei Instanzen der Post-Miniaturansicht für jedes der letzten drei “Portfolio” -Posts. Ich bin mir nur nicht sicher, wie man die Schleife ändert, um nur drei Bilder anzuzeigen, nicht drei Sätze von drei Bildern.

Jede Hilfe wird sehr geschätzt.

Hier ist mein Code:

 
<article id="post-" role="article">

Recent Work

Intro Lorem ipsum

have_posts()) : $first_query->the_post(); ?>

Solutions Collecting From Web of "Schleife zum Abrufen von 3 post_thumbnail-Instanzen aus 3 letzten benutzerdefinierten Post-Typen namens “portfolio”"

mattc,

Ihr Problem besteht darin, dass Sie alle Elemente in der Schleife haben. Sie müssen einen Zähler einrichten und dann nur die benötigten Elemente anwenden, wenn sie benötigt werden. Ich habe nur folgenden Code hinzugefügt:

 < ?php // set a variable to start a count $i = 0; $first_query = new WP_Query('post_type=portfolio'); // the loop starts while($first_query->have_posts()) : $first_query->the_post(); // add 1 to our variable on each pass of the loop $i++; // do the big image first if ($i == 1) { ?>  < ?php } else { // the rest of the images ?> < ?php if ($i == 2) { // need to open our wrapping div here ?> 
< ?php } ?> < ?php the_post_thumbnail('thumbnail'); ?> < ?php if ($i == 3) { // close out the wrapping div?>
< ?php } ?> < ?php endwhile; ?>

Ich benutze diese Implementierung sehr gut – Sie können sehen, wie sie es ergreift:

$thumbnails = get_posts(array('numberposts'=>1,'orderby'=>'ASC','meta_key' => '_thumbnail_id'));

Dann kannst du zu ‘numberposts’ => 3 gehen und deine Thumbnail-Struktur erstellen:

  < ?php if ( has_post_thumbnail() ) { global $post; $thumbnails = get_posts(array('numberposts'=>3,'orderby'=>'ASC','meta_key' => '_thumbnail_id')); foreach ($thumbnails as $thumbnail) { echo ''; echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) )); echo ''; } ?> 

Bearbeitet: Vergessen Sie nicht, Ihre Miniaturgröße festzulegen:

echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) ));

Ändern Sie den “kleinen Daumen” zu dem, was Sie festgelegt haben, wenn Sie einige Größen einstellen müssen, können Sie dies in Ihre functions.php einfügen:

  //Add support, if you need it. if ( function_exists( 'add_theme_support' ) ) { add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 960, 276, true ); // default Post Thumbnail dimensions } //Set them sizes, yo if ( function_exists( 'add_image_size' ) ) { add_image_size( 'large-thumb', 960, 276, true ); //(cropped) add_image_size( 'medium-thumb', 605, 174 ); // 605px wide, 174 high, not cropped add_image_size( 'small-thumb', 288, 83, true ); //(cropped) add_image_size( 'small-square', 100, 100, true ); //(cropped) } 

Prost,

Versuche dies:

 < ?php get_header(); ?> 
role="article">

Recent Work

Intro Lorem ipsum

< ?php $args = array( 'post_type' => 'portfolio', 'post_status' => 'publish', 'posts_per_page' => 3 ); $query = new WP_Query( $args ); $porfolio_post_ids = array(); if ( $query->have_posts() ) { while ( $query->have_posts() ) { global $post; $query->the_post(); array_push( $porfolio_post_ids, $post->ID ); } } ?>

und vergiss nicht, das Thumbnail in der functions.php wie in Davids Antwort erwähnt.

Eine weitere Sache, die ich in Ihrem Code bemerkte: Sie sagten, dass Ihr Post-Typ “Portfolio” ist und im Permalink Sie https://wordpress.stackexchange.com/questions/48554/loop-to-fetch-3-post-thumbnail-instances-from-3-most-recent-custom-post-types-na/single-project.php , aber sollte es nicht single-portfolio.php ?