@quantum_leap
Active 2 months, 3 weeks ago
Forum Replies Created
Viewing 1 replies (of 1 total)
-
For anyone that landed here from a Google search. The pagination is not working for forums set up inside BuddyPress groups. You need to copy those two files from
\plugins\bbpress\templates\default\bbpress
pagination-topics.php
pagination-replies.phpand copy them to
\wp-content\themes\[yourchildtheme]\bbpress
Replace the code inside pagination-topics.php to:
<?php /** * Pagination for pages of topics (when viewing a forum) * * @package bbPress * @subpackage Theme */ // Exit if accessed directly defined( 'ABSPATH' ) || exit; do_action( 'bbp_template_before_pagination_loop' ); // Use bbPress setting for topics per page $posts_per_page = bbp_get_topics_per_page(); // Dynamically get the value from bbPress settings // Get the current page $paged = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1; // Set up the custom query $args = array( 'post_type' => bbp_get_topic_post_type(), 'posts_per_page' => $posts_per_page, 'paged' => $paged, 'meta_query' => array( array( 'key' => '_bbp_forum_id', 'value' => bbp_get_forum_id(), ), ), ); // Run the custom query $forum_query = new WP_Query($args); if ($forum_query->have_posts()) : ?> <div class="bbp-pagination"> <div class="bbp-pagination-count"> <?php // Display the range of topics being viewed $start = ($paged - 1) * $posts_per_page + 1; $end = min($paged * $posts_per_page, $forum_query->found_posts); echo sprintf(__('Viewing %1$s to %2$s (of %3$s topics)'), $start, $end, $forum_query->found_posts); ?> </div> <div class="bbp-pagination-links"> <?php // Generate the pagination links echo paginate_links(array( 'total' => $forum_query->max_num_pages, 'current' => $paged, 'format' => '?paged=%#%', 'add_args' => false, 'prev_text' => __('« Prev'), 'next_text' => __('Next »'), )); ?> </div> </div> <?php else : echo '<p>No topics found.</p>'; endif; // Reset post data wp_reset_postdata(); do_action('bbp_template_after_pagination_loop'); ?>
Replace the code inside pagination-replies.php to:
<?php /** * Pagination for pages of replies (when viewing a topic) * * @package bbPress * @subpackage Theme */ // Exit if accessed directly defined( 'ABSPATH' ) || exit; do_action( 'bbp_template_before_pagination_loop' ); // Use bbPress setting for replies per page $posts_per_page = bbp_get_replies_per_page(); // Dynamically get the value from bbPress settings // Get the current page $paged = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1; // Set up the custom query $args = array( 'post_type' => bbp_get_reply_post_type(), 'posts_per_page' => $posts_per_page, 'paged' => $paged, 'meta_query' => array( array( 'key' => '_bbp_topic_id', 'value' => bbp_get_topic_id(), ), ), ); // Run the custom query $replies_query = new WP_Query($args); if ($replies_query->have_posts()) : ?> <div class="bbp-pagination"> <div class="bbp-pagination-count"> <?php // Display the range of replies being viewed $start = ($paged - 1) * $posts_per_page + 1; $end = min($paged * $posts_per_page, $replies_query->found_posts); echo sprintf(__('Viewing %1$s to %2$s (of %3$s replies)'), $start, $end, $replies_query->found_posts); ?> </div> <div class="bbp-pagination-links"> <?php // Generate the pagination links echo paginate_links(array( 'total' => $replies_query->max_num_pages, 'current' => $paged, 'format' => '?paged=%#%', 'add_args' => false, 'prev_text' => __('« Prev'), 'next_text' => __('Next »'), )); ?> </div> </div> <?php else : echo '<p>No replies found.</p>'; endif; // Reset post data wp_reset_postdata(); do_action('bbp_template_after_pagination_loop'); ?>
Then, resave your permalinks.
Viewing 1 replies (of 1 total)