get_posts_nav_link

The timeline below displays how wordpress function get_posts_nav_link has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.4

/**
 * Retrieves the post pages link navigation for previous and next pages.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string|array $args {
 *     Optional. Arguments to build the post pages link navigation.
 *
 *     @type string $sep      Separator character. Default '—'.
 *     @type string $prelabel Link text to display for the previous page link.
 *                            Default '« Previous Page'.
 *     @type string $nxtlabel Link text to display for the next page link.
 *                            Default 'Next Page »'.
 * }
 * @return string The posts link navigation.
 */
function get_posts_nav_link($args = array())
{
    global $wp_query;
    $return = '';
    if (!is_singular()) {
        $defaults = array('sep' => ' — ', 'prelabel' => __('« Previous Page'), 'nxtlabel' => __('Next Page »'));
        $args = wp_parse_args($args, $defaults);
        $max_num_pages = $wp_query->max_num_pages;
        $paged = get_query_var('paged');
        // Only have sep if there's both prev and next results.
        if ($paged < 2 || $paged >= $max_num_pages) {
            $args['sep'] = '';
        }
        if ($max_num_pages > 1) {
            $return = get_previous_posts_link($args['prelabel']);
            $return .= preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $args['sep']);
            $return .= get_next_posts_link($args['nxtlabel']);
        }
    }
    return $return;
}

WordPress Version: 5.3

/**
 * Retrieves the post pages link navigation for previous and next pages.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string|array $args {
 *     Optional. Arguments to build the post pages link navigation.
 *
 *     @type string $sep      Separator character. Default '&#8212;'.
 *     @type string $prelabel Link text to display for the previous page link.
 *                            Default '&laquo; Previous Page'.
 *     @type string $nxtlabel Link text to display for the next page link.
 *                            Default 'Next Page &raquo;'.
 * }
 * @return string The posts link navigation.
 */
function get_posts_nav_link($args = array())
{
    global $wp_query;
    $return = '';
    if (!is_singular()) {
        $defaults = array('sep' => ' &#8212; ', 'prelabel' => __('&laquo; Previous Page'), 'nxtlabel' => __('Next Page &raquo;'));
        $args = wp_parse_args($args, $defaults);
        $max_num_pages = $wp_query->max_num_pages;
        $paged = get_query_var('paged');
        //only have sep if there's both prev and next results
        if ($paged < 2 || $paged >= $max_num_pages) {
            $args['sep'] = '';
        }
        if ($max_num_pages > 1) {
            $return = get_previous_posts_link($args['prelabel']);
            $return .= preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $args['sep']);
            $return .= get_next_posts_link($args['nxtlabel']);
        }
    }
    return $return;
}

WordPress Version: 4.6

/**
 * Retrieves the post pages link navigation for previous and next pages.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $args {
 *     Optional. Arguments to build the post pages link navigation.
 *
 *     @type string $sep      Separator character. Default '&#8212;'.
 *     @type string $prelabel Link text to display for the previous page link.
 *                            Default '&laquo; Previous Page'.
 *     @type string $nxtlabel Link text to display for the next page link.
 *                            Default 'Next Page &raquo;'.
 * }
 * @return string The posts link navigation.
 */
function get_posts_nav_link($args = array())
{
    global $wp_query;
    $return = '';
    if (!is_singular()) {
        $defaults = array('sep' => ' &#8212; ', 'prelabel' => __('&laquo; Previous Page'), 'nxtlabel' => __('Next Page &raquo;'));
        $args = wp_parse_args($args, $defaults);
        $max_num_pages = $wp_query->max_num_pages;
        $paged = get_query_var('paged');
        //only have sep if there's both prev and next results
        if ($paged < 2 || $paged >= $max_num_pages) {
            $args['sep'] = '';
        }
        if ($max_num_pages > 1) {
            $return = get_previous_posts_link($args['prelabel']);
            $return .= preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $args['sep']);
            $return .= get_next_posts_link($args['nxtlabel']);
        }
    }
    return $return;
}

WordPress Version: 4.3

/**
 * Return post pages link navigation for previous and next pages.
 *
 * @since 2.8.0
 *
 * @global WP_Query $wp_query
 *
 * @param string|array $args Optional args.
 * @return string The posts link navigation.
 */
function get_posts_nav_link($args = array())
{
    global $wp_query;
    $return = '';
    if (!is_singular()) {
        $defaults = array('sep' => ' &#8212; ', 'prelabel' => __('&laquo; Previous Page'), 'nxtlabel' => __('Next Page &raquo;'));
        $args = wp_parse_args($args, $defaults);
        $max_num_pages = $wp_query->max_num_pages;
        $paged = get_query_var('paged');
        //only have sep if there's both prev and next results
        if ($paged < 2 || $paged >= $max_num_pages) {
            $args['sep'] = '';
        }
        if ($max_num_pages > 1) {
            $return = get_previous_posts_link($args['prelabel']);
            $return .= preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $args['sep']);
            $return .= get_next_posts_link($args['nxtlabel']);
        }
    }
    return $return;
}

WordPress Version: 3.9

/**
 * Return post pages link navigation for previous and next pages.
 *
 * @since 2.8.0
 *
 * @param string|array $args Optional args.
 * @return string The posts link navigation.
 */
function get_posts_nav_link($args = array())
{
    global $wp_query;
    $return = '';
    if (!is_singular()) {
        $defaults = array('sep' => ' &#8212; ', 'prelabel' => __('&laquo; Previous Page'), 'nxtlabel' => __('Next Page &raquo;'));
        $args = wp_parse_args($args, $defaults);
        $max_num_pages = $wp_query->max_num_pages;
        $paged = get_query_var('paged');
        //only have sep if there's both prev and next results
        if ($paged < 2 || $paged >= $max_num_pages) {
            $args['sep'] = '';
        }
        if ($max_num_pages > 1) {
            $return = get_previous_posts_link($args['prelabel']);
            $return .= preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $args['sep']);
            $return .= get_next_posts_link($args['nxtlabel']);
        }
    }
    return $return;
}

WordPress Version: 3.7

/**
 * Return post pages link navigation for previous and next pages.
 *
 * @since 2.8
 *
 * @param string|array $args Optional args.
 * @return string The posts link navigation.
 */
function get_posts_nav_link($args = array())
{
    global $wp_query;
    $return = '';
    if (!is_singular()) {
        $defaults = array('sep' => ' &#8212; ', 'prelabel' => __('&laquo; Previous Page'), 'nxtlabel' => __('Next Page &raquo;'));
        $args = wp_parse_args($args, $defaults);
        $max_num_pages = $wp_query->max_num_pages;
        $paged = get_query_var('paged');
        //only have sep if there's both prev and next results
        if ($paged < 2 || $paged >= $max_num_pages) {
            $args['sep'] = '';
        }
        if ($max_num_pages > 1) {
            $return = get_previous_posts_link($args['prelabel']);
            $return .= preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $args['sep']);
            $return .= get_next_posts_link($args['nxtlabel']);
        }
    }
    return $return;
}