Die ersten drei Bilder im Postauszug

Ich habe bestimmte Beiträge, die nichts anderes sind als [Galerie] mit ziemlich vielen Bildern darin. Gibt es eine Möglichkeit, einen automatisch generierten Ausschnitt so zu definieren, dass nur die ersten drei Bilder für diese Beiträge im Index angezeigt werden, sodass sich die Benutzer durchklicken müssen, um den Rest zu sehen? Vielen Dank.

Solutions Collecting From Web of "Die ersten drei Bilder im Postauszug"

Sie können dies ganz einfach mit der function do_shortcode tun.

Überprüfen Sie, ob eine Instanz von [gallery] in Ihrem Post-Inhalt vorhanden ist.

Hier ist eine einfache function, um in functions.php den Inhalt des aktuellen Beitrags für den Galerie-Shortcode zu überprüfen:

 function gallery_shortcode_exists(){ global $post; # Check the content for an instance of [gallery] with or without arguments $pattern = get_shortcode_regex(); if( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches ) && array_key_exists( 2, $matches ) && in_array( 'gallery', $matches[2] ) ) return true; # Sourced from http://codex.wordpress.org/Function_Reference/get_shortcode_regex } 

Verwenden Sie do_shortcode() , um Ihre Galerie zu rendern.

Sie können Folgendes in der Schleife in Ihren Vorlagendateien verwenden:

 # Determine if the post_content column contains the string [gallery] if( gallery_shortcode_exists() ){ # Get the first three attachments using the posts_per_page parameter $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'posts_per_page' => 3, 'post_parent' => get_the_ID() ); $attachments = get_children( $args ); # If any attachments are returned, proceed if( $attachments ){ # Spin cycle to collate attachment IDs foreach( $attachments as $attachment ) $includes[] = $attachment->ID; # Format our IDs in a comma-delimited string $includes = implode(',', $includes); # Inject your include argument $shortcode = str_replace('[gallery', "[gallery include='$includes' ", get_the_content()); # Render the Gallery using the standard editorial input syntax echo do_shortcode($shortcode); # Add a View More link echo '' . __('View more', 'domain') . ''; } else _e('Foo Bar - No attachments found and no excerpt to display', 'domain'); } else # Whatever fallback you desire the_excerpt();