WordPress Version: 6.1
/**
* Retrieves a paginated navigation to next/previous set of posts, when applicable.
*
* @since 4.1.0
* @since 5.3.0 Added the `aria_label` parameter.
* @since 5.5.0 Added the `class` parameter.
*
* @global WP_Query $wp_query WordPress Query object.
*
* @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'.
* }
* @return string Markup for pagination links.
*/
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 navigation'), 'aria_label' => __('Posts'), '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;
}