Anpassen des Galerie-Shortcodes in 3.5

Ich versuche, den Gallerie-Shortcode mit dem neuen Galeriesystem in 3.5 anzupassen und ich habe ein paar Probleme und kann nicht herausfinden, wo ich falsch liege. Das habe ich zur Zeit (in functions.php) :

include( 'lib/theme-setup.php' ); include( 'lib/load-scripts.php' ); add_filter( 'post_gallery', 'my_custom_gallery', 10, 2 ); function my_custom_gallery( $output, $attr) { global $post; // We're trusting author input, so let's at least make sure it looks like a valid orderby statement if ( isset( $attr['orderby'] ) ) : $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] ); if ( !$attr['orderby'] ) unset( $attr['orderby'] ); endif; extract(shortcode_atts(array( 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post->ID, 'columns' => 0, 'size' => 'medium', 'include' => '' ), $attr)); $id = intval($id); if ( !empty($include) ) { $include = preg_replace( '/[^0-9,]+/', '', $include ); $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); $attachments = array(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } else { $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } if ( empty($attachments) ) return ''; if ( is_feed() ) { $output = "\n"; foreach ( $attachments as $att_id => $attachment ) $output .= wp_get_attachment_link($att_id, $size, true) . "\n"; return $output; } $output .= ''; return $output; } 

Dann habe ich einfach eine einfache benutzerdefinierte Seitenvorlage, die die Galerie anzeigt, die auf ‘the_content ()’ innerhalb der Schleife verweist, um den Galerie-Shortcode auszugeben:

 if (have_posts()) : while (have_posts()) : the_post(); the_content(); endwhile; endif; 

Die Bilder werden angezeigt, aber aus irgendeinem Grund funktioniert die JavaScript-function für die Galerie nicht so. Das Problem muss mit dem shortcode sein, weil seltsamerweise, wenn ich die Schleife in der Schablone der kundenspezifischen Seite herausnehme und einfach eine function addiere, um die Anlagen der Seite anstelle des Kurzwahlcodes zu erhalten, funktioniert das Javascript und lädt gut. Das Problem dabei ist, dass es alle Bilder, die an diese Seite angehängt sind, einliest, und ich möchte nur diejenigen, die in der Galerie für die bestimmte Seite sind, die der Galerie-Kurzcode ausführt. Ich mag die neue Galerie-Schnittstelle für 3.5 und würde gerne diese functionalität für meine Galerien implementieren.

Irgendwelche Ratschläge, was das verursachen könnte?

Solutions Collecting From Web of "Anpassen des Galerie-Shortcodes in 3.5"

Ich bin mir nicht sicher, ob Sie das suchen, aber ich bin auf Ihre Frage gestoßen, als ich nach einem Beispiel für eine benutzerdefinierte Ausgabe des Galerie-Shortcodes suchte. Am Ende fand ich das am hilfreichsten:

https://github.com/marclarr/roots/blob/master/lib/cleanup.php#L275

Übrigens kann die Galerie in wp-includes / media.php gefunden werden

Stellen Sie sicher, dass das von Ihrer load-scripts.php geladene JavaScript darauf wartet, dass das Dokument vollständig geladen wird, bevor alle Listener angehängt werden.

Wenn Sie eine separate function erstellten, wurde der Code nur ein kleines bisschen früher ausgeführt, aber es war wahrscheinlich früh genug, dass die Elemente vollständig geladen und die Listener korrekt angehängt wurden.