Wie man wordpress shortcode paginieren?

Ich benutze WordPress Galerie Shortcode [Galerie] Ich frage mich, ob es sowieso zu paginieren sie ohne ein Plugin.

Solutions Collecting From Web of "Wie man wordpress shortcode paginieren?"

Ich habe Antwort geschrieben, wie Anhänge in einer sekundären Abfrage als Galerie paginiert werden? , die zur Lösung dieses Problems verwendet werden können. Wie @ wpmudev-ari sagte der [gallery] shortcode kann umgeschrieben werden, oder ein neuer shortcode könnte erstellt werden. Ich erkläre unten – B. – wie das gemacht werden kann. Zusätzlich gibt es eine sehr einfache Lösung – A. – für die Paginierung des Shortcodes.

A. Einfache Lösung zum Paginieren von [gallery] shortcode

Sie können die Seitennummerierung folgendermaßen erreichen:

  • die numberposts und offset Argumente des Shortcodes;
  • in Verbindung mit dem -Tag;

wie unten gezeigt.

Code:

 [gallery numberposts="9"]  [gallery offset="9" numberposts="9"] 

Dies paginiert die Galerie nicht, sie paginiert den Post, der die Galerie enthält – oder genauer gesagt, die geteilte Galerie. In einigen Anwendungsfällen reicht dies jedoch möglicherweise aus. Weitere Informationen finden Sie in der Quelle.

Quelle: Quick-Tipp: Paginieren Sie Ihre WordPress-Galerie

B. Paginiert durch Umschreiben [Galerie] oder Erstellen eines neuen Kurzwahlcodes

Dies setzt voraus, dass Sie so etwas wollen:

 |---------------------| | content | | (static) | |---------------------| | gallery | | (paged) | |---------------------| | < < pagelinks >> | |---------------------| 

1. Überschreiben des [Galerie] -Kurzcodes

  • Verwenden Sie entweder a) oder b), nicht beides.

ein)

Code:

 remove_shortcode('gallery', 'gallery_shortcode'); add_shortcode('gallery', 'wpse89462_get_attachment_gallery_shortcode'); 

b)

Code:

 add_filter( 'post_gallery', 'wpse89462_get_attachment_gallery_shortcode', 10, 2 ); 

2. Erstellen eines neuen Shortcodes

  • Wenn Sie das Original beibehalten möchten, erstellen Sie ein neues.

Code:

 add_shortcode('wpse89462_paginated_attachment_gallery', 'wpse89462_get_attachment_gallery_shortcode'); 

3. Shortcode-function

  • Diese function wird ausgeführt, wenn der Shortcode gefunden wird.
  • Erklärung für den Galerie-Code finden Sie in der oben verlinkten Antwort.

Code:

 function wpse89462_get_attachment_gallery_shortcode( $output, $attr ) { global $post; static $instance = 0; $instance++; // 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'] ); } $html5 = current_theme_supports( 'html5', 'gallery' ); extract(shortcode_atts(array( 'posts_per_page' => 1, 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post ? $post->ID : 0, 'itemtag' => $html5 ? 'figure' : 'dl', 'icontag' => $html5 ? 'div' : 'dt', 'captiontag' => $html5 ? 'figcaption' : 'dd', 'columns' => 3, 'size' => 'thumbnail', 'post__in' => '', 'post__not_in' => '' ), $attr)); if ( ! empty( $post__in ) ) $post__in = explode( ',', $post__in ); if ( ! empty( $post__not_in ) ) $post__not_in = explode( ',', $post__not_in ); $id = intval($id); if ( 'RAND' == $order ) $orderby = 'none'; $output = ''; $selector = "gallery-{$instance}"; $gallery_style = $gallery_div = ''; if ( apply_filters( 'use_default_gallery_style', ! $html5 ) ) { $gallery_style = " "; } $size_class = sanitize_html_class( $size ); $gallery_div = "'; endif; return $output; } 

4. Zusätzlicher Code

  • Sehen Sie sich an, wie Anlagen in einer sekundären Abfrage als Galerie paginiert werden? für eine Erklärung

a) Fügen Sie eine Abfragevariable hinzu

Code:

 add_filter('init', 'wpse89462_attachment_gallery_add_query_var'); function wpse89462_attachment_gallery_add_query_var() { global $wp; $wp->add_query_var('gallery_page'); } 

b) Umschreiben

Code:

 add_filter('init', 'wpse89462_attachment_gallery_add_rewrite_tag_rule'); function wpse89462_attachment_gallery_add_rewrite_tag_rule() { add_rewrite_tag('%gallery_page%','([^&]+)'); // rewrite rules have to be added according to needs // below two rules are for two specitic cases // /{year}/{month}/{name}/[gallery_page rewrite] add_rewrite_rule('([0-9]{4})/([0-9]{2})/([^/]+)?/gallery/image//?([0-9]{1,})/?$', 'index.php?year=$matches[1]&month=$matches[2]&name=$matches[3]&gallery_page=$matches[4]', 'top'); // /{name}/[gallery_page rewrite] add_rewrite_rule('([^/]+)/gallery/image//?([0-9]{1,})/?$', 'index.php?name=$matches[1]&gallery_page=$matches[2]', 'top'); }