WordPress Version: 6.1
/**
* Returns the 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 posts navigation arguments. Default empty array.
*
* @type string $prev_text Anchor text to display in the previous posts link.
* Default 'Older posts'.
* @type string $next_text Anchor text to display in the next posts link.
* Default 'Newer posts'.
* @type string $screen_reader_text Screen reader text for the nav 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 'posts-navigation'.
* }
* @return string Markup for posts links.
*/
function get_the_posts_navigation($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('prev_text' => __('Older posts'), 'next_text' => __('Newer posts'), 'screen_reader_text' => __('Posts navigation'), 'aria_label' => __('Posts'), 'class' => 'posts-navigation'));
$next_link = get_previous_posts_link($args['next_text']);
$prev_link = get_next_posts_link($args['prev_text']);
if ($prev_link) {
$navigation .= '<div class="nav-previous">' . $prev_link . '</div>';
}
if ($next_link) {
$navigation .= '<div class="nav-next">' . $next_link . '</div>';
}
$navigation = _navigation_markup($navigation, $args['class'], $args['screen_reader_text'], $args['aria_label']);
}
return $navigation;
}