Shortcode mit Seitennummerierung, die mehrere Abfragen voranbringt

Ich habe einen Shortcode, den ich benutze. Der Shortcode selbst funktioniert. Der Shortcode hat Seitenzahlen, weil er durch eine Bildergalerie fährt.

Die Paginierung selbst funktioniert, aber wenn sie fortschreitet, wird auch die Paginierung für andere Bildergalerien, die den gleichen Shortcode verwenden, erweitert.

Meine Frage ist, wie kann ich den gleichen Shortcode haben, aber nur diese bestimmte Galerie voranbringen, wenn ich die Paginierung verwende, anstatt alle Galerien, die diesen Shortcode verwenden, weiterzuentwickeln? Wenn ich zum Beispiel auf Seite 2 für die Galerie 2017 klicke, bleibt Galerie 2016 auf Seite 1.

Der Shortcode, den ich auf der Seite verwende, sieht folgendermaßen aus: [halloffame rml_folder="16"] und [halloffame rml_folder="14"]

Der tatsächliche Shortcode in meiner functionsdatei sieht folgendermaßen aus:

 function picture_gallery($atts){ extract(shortcode_atts(array( 'rml_folder' => 1 ), $atts)); $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; query_posts("post_status=inherit&post_type=attachment&rml_folder=".$rml_folder."&orderby=title&order=asc&posts_per_page=12&paged=".$paged); if ( have_posts() ) : $return_string .= '
'; while ( have_posts() ) : the_post(); $return_string .= ''; endwhile; $return_string .= '
'; endif; $return_string .= '
'; $return_string .= '
'; $args = array( 'prev_text' => __(''), 'next_text' => __('') ); $return_string .= paginate_links($args); $return_string .= '
'; $return_string .= '
'; global $wp_query; $current_page = get_query_var( 'paged' ); $pages = $wp_query->max_num_pages; $return_string .= '

(Page: '.$current_page.' of '.$pages.')

'; wp_reset_query(); return $return_string; } function register_shortcodes(){ add_shortcode('halloffame', 'picture_gallery'); } add_action( 'init', 'register_shortcodes');

Ich bin definitiv nicht an diesen Code gebunden, wenn es einen besseren Weg gibt, zögere nicht!

Irgendwelche Ideen?

** UPDATE ** Ich habe meinen WP_Query aktualisiert, um WP_Query anstelle von query_posts , mein Code ist ähnlich, sieht jetzt aber so aus:

 function picture_gallery($atts){ extract(shortcode_atts(array( 'rml_folder' => 1 ), $atts)); $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $picture_gallery = new WP_Query(array( 'post_status' => 'inherit', 'post_type' => 'attachment', 'rml_folder' => $rml_folder, 'orderby' => 'title', 'order' => 'asc', 'posts_per_page' => 12, 'paged' => $paged )); if ( $picture_gallery->have_posts() ) : $return_string .= '
'; while ( $picture_gallery->have_posts() ) : $picture_gallery->the_post(); $return_string .= ''; endwhile; $return_string .= '
'; endif; $return_string .= '
'; $return_string .= '
'; $return_string .= paginate_links(array( 'prev_text' => __(''), 'next_text' => __(''), 'total' => $picture_gallery->max_num_pages )); $return_string .= '
'; $return_string .= '
'; $current = get_query_var( 'paged' ); $total = $picture_gallery->max_num_pages; $return_string .= '

(Page: '.$current.' of '.$total.')

'; return $return_string; wp_reset_query(); } function register_shortcodes(){ add_shortcode('halloffame', 'picture_gallery'); } add_action( 'init', 'register_shortcodes');

Jetzt bin ich zurück zu meinem ursprünglichen Problem, das die Seitennummerierung für meinen Shortcode alle Mehrfachabfragen auf der gleichen Seite vorantreibt … immer noch darauf eingehend.

Vielen Dank,
Josh

Solutions Collecting From Web of "Shortcode mit Seitennummerierung, die mehrere Abfragen voranbringt"

Ich habe eine Gallerie-Paginierung gemacht, indem ich alle Sachen von Galerien in Arrays umwandelte, und dann json_encoding und es an Javascript weitergab. Wenn Sie dazu wären, könnten Sie mehrere Skripte haben:

 jQuery(document).ready(function( $ ) { var thisgallery = < ?php echo the gallery; ?> function process pagination (){ code for pagination } } 

Und da sie alle in separaten jquery-document-ready-functionen sind, würden sie sich nicht sehen, so dass sie unabhängig voneinander und ohne erneute Seitenladevorgänge iterieren würden.

Bearbeiten: Die modifizierte Shortcode-function würde folgendermaßen aussehen:

 < ?php function picture_gallery($atts){ extract(shortcode_atts(array( 'rml_folder' => 1 ), $atts)); query_posts("post_status=inherit&post_type=attachment&rml_folder=".$rml_folder."&orderby=title&order=asc&posts_per_page=-1"); $return_string = ""; $pics = array(); if ( have_posts() ) : while ( have_posts() ) : the_post(); $p = array( 'image' => wp_get_attachment_image(get_post_thumbnail_id($post->ID), 'medium'), 'url' => wp_get_attachment_url($post->ID) ); $pics[] = $p; endwhile; endif; $pics = json_encode($pics); $return_string .= " " wp_reset_query(); return $return_string; } 

Bearbeiten: Fügte ein Div hinzu, um das erste Bild in der Galerie anzuzeigen.