Wie Sie einer Post-Schleife in einer benutzerdefinierten BuddyPress-Registerkarte Seitenumbruch hinzufügen

Ich habe einen neuen Tab namens “Videos” auf der BuddyPress-Profilseite erstellt. Diese Registerkarte enthält alle Video-Posts, die von diesem Benutzer hinzugefügt wurden. Das Problem ist, dass nur die ersten 12 Posts angezeigt werden und die Paginierung nicht angezeigt wird. Ich habe versucht, den Paginierungscode des Themas einzufügen, aber ohne Erfolg.

Anmerkungen:

  • Ich benutze ein Thema namens “VideoTube”

  • Die zu paginierende Post-Schleife stammt aus einem benutzerdefinierten Post-Typ namens “Video”.

  • Der ursprüngliche Seitenumbruchcode, der vom Thema bereitgestellt wird, lautet

  • Der folgende Code wird aus meiner functions.php-Datei im Child-Theme-Ordner gezogen.

Vielen Dank im Voraus für Ihre Hilfe: D

Code:

   
array( 'video' ), 'author' => bp_displayed_user_id(), 'posts_per_page' => get_option( 'posts_per_page' ) ); $author_videos = new WP_Query( $args ); if ( $author_videos->have_posts() ) : while ( $author_videos->have_posts() ) : $author_videos->the_post(); get_template_part( 'loop', 'video' ); endwhile; ?>
<?php }

Also habe ich herausgefunden, wie man die Seitenzahlen anzeigt, mit dem folgenden Code. Das Problem ist, wenn ich auf die nächste Seite klicke, bringt mich das auf eine 404 Seite. Aber wenn ich manuell eine benutzerdefinierte URL besuche, wird die zweite Seite korrekt angezeigt. Hier sind zwei Beispiele:

404 Version:

Dies ist die URL-Struktur, die von diesem Paginierungscode generiert wird

www.website.com/members/username/my-videos/page/2/

Arbeitsversion:

Dies ist eine manuelle URL, die ich gefunden habe

www.website.com/members/username/my-videos/?page=2

Die Frage ist, wie man es mit der ersten Version (/ page / 2 /) zum Laufen bringt

CODE:

   
'video', 'author' => bp_displayed_user_id(), 'posts_per_page' => get_option( 'posts_per_page' ) ); $custom_query_args['paged'] = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; $custom_query = new WP_Query( $custom_query_args ); $temp_query = $wp_query; $wp_query = NULL; $wp_query = $custom_query; if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); get_template_part( 'loop', 'video' ); endwhile; ?>
max_num_pages );?>

Solutions Collecting From Web of "Wie Sie einer Post-Schleife in einer benutzerdefinierten BuddyPress-Registerkarte Seitenumbruch hinzufügen"

Dies ist möglicherweise nicht der richtige Weg, aber es funktioniert in BP Profilseiten

  ... $paged = ( isset( $_GET['vp'] ) ) ? $_GET['vp'] : 1; $args = array( 'post_type' => array( 'video' ), 'author' => bp_displayed_user_id(), 'paged' => $paged, 'posts_per_page' => get_option( 'posts_per_page' ) ); $author_videos = new WP_Query( $args ); if ( $author_videos->have_posts() ) : while ( $author_videos->have_posts() ) : $author_videos->the_post(); get_template_part( 'loop', 'video' ); endwhile; ?>  

< ?php echo videos_profile_pagination( $wp_query ); ?>
< ?php wp_reset_query(); endif; ?> < ?php } // pagination for profile video loop page function videos_profile_pagination( $wp_query ) { $videos_profile_page_links = paginate_links( array( 'base' => esc_url( add_query_arg( 'vp', '%#%' ) ), 'format' => '', 'total' => ceil( (int) $wp_query->found_posts / (int) get_query_var('posts_per_page') ), 'current' => (int) get_query_var('paged'), ) ); return apply_filters( 'videos_profile_pagination', $videos_profile_page_links ); }

$ paged = (isset ($ _GET [‘page’]))? $ _GET [‘Seite’]: 1;

 $custom_query_args = array( 'post_type' => 'video', 'paged' => $paged, 'author' => bp_displayed_user_id(), 'posts_per_page' => get_option( 'posts_per_page' ) ); $custom_query = new WP_Query( $custom_query_args ); $temp_query = $wp_query; $wp_query = NULL; $wp_query = $custom_query; if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); get_template_part( 'loop', 'video' ); endwhile; ?>  
    < ?php // echo videos_profile_pagination( $wp_query ); $list = videos_profile_pagination($custom_query); foreach ( $list as $page ) { echo "
  • $page"; } ?>
< ?php add_action('mars_pagination', 'mars_pagination', 10, 1); wp_reset_query(); endif; ?> < ?php // Reset main query object $wp_query = NULL; $wp_query = $temp_query; ?>

Paginierung für Profil-Video-Loop-Seite

function videos_profile_pagination ($ wp_query) {

  $query = $wp_query; if ( $query->max_num_pages < 2 ) { return; } $paged = ( isset( $_GET['page'] ) ) ? $_GET['page'] : 1; // Set up paginated links. $links = paginate_links( array( 'base' => '%_%', 'format' => '?page=%#%', 'total' => $query->max_num_pages, 'current' => $paged, 'mid_size' => 3, 'type' => 'array', 'prev_next' => true, 'prev_text' => !is_rtl() ? __( '← Previous ', 'mars' ) : __( ' → Previous', 'mars' ), 'next_text' => !is_rtl() ? __( 'Next →', 'mars' ) : __( 'Next ←', 'mars' ) ) ); return $links; 

}