Wie beschränke ich Bilder in einer Galerie mit begrenzten Bildbeiträgen nicht auf einzelne Posts?

Ich habe eine function für ein Thema erstellt, die die Anzahl der in einer Galerie angezeigten Bilder begrenzt. Dies ist im Postformat der Galerie. Ich möchte jedoch die Galeriebilder auf allen Seiten mit Ausnahme des einzelnen Beitrags beschränken.

Mein Code ist bisher der folgende (gekürzt mit den Teilen, die für die fraglichen Attribute spezifisch sind):

function the_mx_limited_gallery( $attr ) { $post = get_post(); $attachment_ids = the_mx_get_limited_gallery_ids(); $link_image_to = the_mx_medialink_switcher(); // Customizer controls if( get_post_format() == 'gallery' ) { // opens gallery post format check ... // setup shortcode attributes $atts = shortcode_atts( array( 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post ? $post->ID : 0, 'itemtag' => 'figure', 'icontag' => 'div', 'captiontag' => 'figcaption', 'columns' => 3, 'include' => $attachment_ids, 'size' => 'gallery-thumb', 'link' => $link_image_to, ), $atts ); $id = intval( $atts['id'] ); if ( ! empty( $atts['include'] ) ) { $_attachments = get_posts( array( 'include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'], ) ); $attachments = array(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } elseif ( ! empty( $atts['exclude'] ) ) { $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) ); } else { $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) ); } ... } 

Der Code, der die Galerie-IDs (the_mx_get_limited_gallery_ids) abruft, enthält den folgenden Code:

 // Function for limiting Gallery ID length (in the Gallery post format). // see http://www.webgurus.biz/how-to-limit-wordpress-gallery-thumbnails-in-the-loop/ function the_mx_get_limited_gallery_ids() { global $wpdb, $post; $ids = ''; $counter = 0; $number_of_posts = 6; $args = array( 'post_type' => 'attachment', 'numberposts' => 6, 'orderby' => 'menu_order', 'order' => 'ASC', 'post_status' => null, 'post_parent' => $post->ID, ); $attachments = get_posts($args); if($attachments) { foreach ($attachments as $attachment) { if($counter != 0) { $ids .= ','.$attachment->ID; } else { $ids .= $attachment->ID; } $counter++; } } return $ids; } 

Um auf dem Frontend anzuzeigen, habe ich versucht, nur do_shortcode filtern und mit do_shortcode , aber in meiner Testumgebung stört dies die Jetpack Galerie Ergänzungen. Ich möchte meine Galerie neben der Jetpack Galerie zeigen.

Jede Hilfe wäre willkommen.

Solutions Collecting From Web of "Wie beschränke ich Bilder in einer Galerie mit begrenzten Bildbeiträgen nicht auf einzelne Posts?"

Nun, ich fand keine Antwort, sondern eine Abhilfe für diese Frage. In der function ” the_mx_limited_gallery ich einen negierten is_single Check um den Großteil des Inhalts der function hinzugefügt. is_single die eingeschränkten Posts und der benutzerdefinierte Code nur is_single , wenn Sie sich auf einer anderen Seite als einem einzelnen Post befinden.

Das ist nicht so, wie ich ursprünglich gedacht hatte, aber es funktioniert vorläufig. Unten ist der angepasste Code:

 function the_mx_limited_gallery( $attr ) { $post = get_post(); $attachment_ids = the_mx_get_limited_gallery_ids(); $link_image_to = the_mx_medialink_switcher(); // Customizer controls $mx_colcount = the_mx_gal_colcount_switcher(); // Customizer controls if( get_post_format() == 'gallery' ) { // opens gallery post format check if( !is_single() ) { // opens non single page if statement // setup shortcode attributes $atts = shortcode_atts( array( ... } // closes non single page if statement } // closes gallery post format } add_filter( 'post_gallery', 'the_mx_limited_gallery', 10, 1 ); 

Ich habe den Teil “add_filter” in der ursprünglichen Frage vergessen.

Wenn jemand noch eine Lösung finden kann, die nur die Shortcode-Attribute anpasst, bin ich immer noch offen für Vorschläge oder Antworten. Für jetzt werde ich dies als beantwortet markieren.