Retrieves a paginated navigation to next/previous set of posts, when applicable.
Parameters
$argsarrayoptional- Default pagination arguments, see paginate_links() .
screen_reader_textstringScreen reader text for navigation element.
Default ‘Posts pagination’.aria_labelstringARIA label text for the nav element. Default ‘Posts pagination’.classstringCustom class for the nav element. Default'pagination'.
More Arguments from paginate_links( … $args )
Array or string of arguments for generating paginated links for archives.
basestringBase of the paginated url. Default empty.formatstringFormat for the pagination structure. Default empty.totalintThe total amount of pages. Default is the value WP_Query‘smax_num_pagesor 1.currentintThe current page number. Default is'paged'query var or 1.aria_currentstringThe value for the aria-current attribute. Possible values are'page','step','location','date','time','true','false'. Default is'page'.show_allboolWhether to show all pages. Default false.end_sizeintHow many numbers on either the start and the end list edges.
Default 1.mid_sizeintHow many numbers to either side of the current pages. Default 2.prev_nextboolWhether to include the previous and next links in the list. Default true.prev_textstringThe previous page text. Default ‘« Previous’.next_textstringThe next page text. Default ‘Next »’.typestringControls format of the returned value. Possible values are'plain','array'and'list'. Default is'plain'.add_argsarrayAn array of query args to add. Default false.add_fragmentstringA string to append to each link. Default empty.before_page_numberstringA string to appear before the page number. Default empty.after_page_numberstringA string to append after the page number. Default empty.
Default:
array()
Source
function get_the_posts_pagination( $args = array() ) {
global $wp_query;
$navigation = '';
// Don't print empty markup if there's only one page.
if ( $wp_query->max_num_pages > 1 ) {
// Make sure the nav element has an aria-label attribute: fallback to the screen reader text.
if ( ! empty( $args['screen_reader_text'] ) && empty( $args['aria_label'] ) ) {
$args['aria_label'] = $args['screen_reader_text'];
}
$args = wp_parse_args(
$args,
array(
'mid_size' => 1,
'prev_text' => _x( 'Previous', 'previous set of posts' ),
'next_text' => _x( 'Next', 'next set of posts' ),
'screen_reader_text' => __( 'Posts pagination' ),
'aria_label' => __( 'Posts pagination' ),
'class' => 'pagination',
)
);
/**
* Filters the arguments for posts pagination links.
*
* @since 6.1.0
*
* @param array $args {
* Optional. Default pagination arguments, see paginate_links().
*
* @type string $screen_reader_text Screen reader text for navigation element.
* Default 'Posts navigation'.
* @type string $aria_label ARIA label text for the nav element. Default 'Posts'.
* @type string $class Custom class for the nav element. Default 'pagination'.
* }
*/
$args = apply_filters( 'the_posts_pagination_args', $args );
// Make sure we get a string back. Plain is the next best thing.
if ( isset( $args['type'] ) && 'array' === $args['type'] ) {
$args['type'] = 'plain';
}
// Set up paginated links.
$links = paginate_links( $args );
if ( $links ) {
$navigation = _navigation_markup( $links, $args['class'], $args['screen_reader_text'], $args['aria_label'] );
}
}
return $navigation;
}
Hooks
- apply_filters( ‘the_posts_pagination_args’,
array $args ) Filters the arguments for posts pagination links.
$argsparam is passed to the paginate_links() function.Default values: