bbp_get_topic_pagination( array $args = array() )

Returns pagination links of a topic within the topic loop


Description Description


Parameters Parameters

$args

(Optional) This function supports these arguments: - topic_id: Topic id - before: Before the links - after: After the links

Default value: array()


Top ↑

Return Return

(string) Pagination links


Top ↑

Source Source

File: includes/topics/template.php

	function bbp_get_topic_pagination( $args = array() ) {

		// Bail if threading replies
		if ( bbp_thread_replies() ) {
			return;
		}

		// Parse arguments against default values
		$r = bbp_parse_args( $args, array(
			'topic_id' => bbp_get_topic_id(),
			'before'   => '<span class="bbp-topic-pagination">',
			'after'    => '</span>',
		), 'get_topic_pagination' );

		// Slug must be checked for topics that have never been approved/published
		$has_slug = bbp_get_topic( $r['topic_id'] )->post_name;

		// If pretty permalinks are enabled, make our pagination pretty
		$base = ! empty( $has_slug ) && bbp_use_pretty_urls() && ! bbp_is_topic_pending( $r['topic_id'] )
			? trailingslashit( get_permalink( $r['topic_id'] ) ) . user_trailingslashit( bbp_get_paged_slug() . '/%#%/' )
			: add_query_arg( 'paged', '%#%', get_permalink( $r['topic_id'] ) );

		// Get total and add 1 if topic is included in the reply loop
		$total = bbp_get_topic_reply_count( $r['topic_id'], true );

		// Bump if topic is in loop
		if ( ! bbp_show_lead_topic() ) {
			$total++;
		}

		// Total for pagination boundaries
		$total_pages = ceil( $total / bbp_get_replies_per_page() );

		// Maybe add view-all args
		$add_args = bbp_get_view_all( 'edit_others_replies' )
			? array( 'view' => 'all' )
			: false;

		// Pagination settings with filter
		$bbp_topic_pagination = apply_filters( 'bbp_get_topic_pagination', array(
			'base'      => $base,
			'total'     => $total_pages,
			'current'   => 0,
			'prev_next' => false,
			'mid_size'  => 2,
			'end_size'  => 2,
			'add_args'  => $add_args
		) );

		// Add pagination to query object
		$pagination_links = bbp_paginate_links( $bbp_topic_pagination );

		// Maybe add before and after to pagination links
		if ( ! empty( $pagination_links ) ) {
			$pagination_links = $r['before'] . $pagination_links . $r['after'];
		}

		// Filter & return
		return apply_filters( 'bbp_get_topic_pagination', $pagination_links, $args );
	}

Top ↑

Changelog Changelog

Changelog
Version Description
2.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.