get_next_posts_link

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

WordPress Version: 6.2

/**
 * Retrieves the next posts page link.
 *
 * @since 2.7.0
 *
 * @global int      $paged
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string $label    Content for link text.
 * @param int    $max_page Optional. Max pages. Default 0.
 * @return string|void HTML-formatted next posts page link.
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $next_page = (int) $paged + 1;
    if (null === $label) {
        $label = __('Next Page »');
    }
    if (!is_single() && $next_page <= $max_page) {
        /**
         * Filters the anchor tag attributes for the next posts page link.
         *
         * @since 2.7.0
         *
         * @param string $attributes Attributes for the anchor tag.
         */
        $attr = apply_filters('next_posts_link_attributes', '');
        return sprintf('<a href="%1$s" %2$s>%3$s</a>', next_posts($max_page, false), $attr, preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label));
    }
}

WordPress Version: 5.6

/**
 * Retrieves the next posts page link.
 *
 * @since 2.7.0
 *
 * @global int      $paged
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string $label    Content for link text.
 * @param int    $max_page Optional. Max pages. Default 0.
 * @return string|void HTML-formatted next posts page link.
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $nextpage = (int) $paged + 1;
    if (null === $label) {
        $label = __('Next Page &raquo;');
    }
    if (!is_single() && $nextpage <= $max_page) {
        /**
         * Filters the anchor tag attributes for the next posts page link.
         *
         * @since 2.7.0
         *
         * @param string $attributes Attributes for the anchor tag.
         */
        $attr = apply_filters('next_posts_link_attributes', '');
        return '<a href="' . next_posts($max_page, false) . "\" {$attr}>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
    }
}

WordPress Version: 5.3

/**
 * Retrieves the next posts page link.
 *
 * @since 2.7.0
 *
 * @global int      $paged
 * @global WP_Query $wp_query WordPress Query object.
 *
 * @param string $label    Content for link text.
 * @param int    $max_page Optional. Max pages. Default 0.
 * @return string|void HTML-formatted next posts page link.
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $nextpage = intval($paged) + 1;
    if (null === $label) {
        $label = __('Next Page &raquo;');
    }
    if (!is_single() && $nextpage <= $max_page) {
        /**
         * Filters the anchor tag attributes for the next posts page link.
         *
         * @since 2.7.0
         *
         * @param string $attributes Attributes for the anchor tag.
         */
        $attr = apply_filters('next_posts_link_attributes', '');
        return '<a href="' . next_posts($max_page, false) . "\" {$attr}>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
    }
}

WordPress Version: 4.6

/**
 * Retrieves the next posts page link.
 *
 * @since 2.7.0
 *
 * @global int      $paged
 * @global WP_Query $wp_query
 *
 * @param string $label    Content for link text.
 * @param int    $max_page Optional. Max pages. Default 0.
 * @return string|void HTML-formatted next posts page link.
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $nextpage = intval($paged) + 1;
    if (null === $label) {
        $label = __('Next Page &raquo;');
    }
    if (!is_single() && $nextpage <= $max_page) {
        /**
         * Filters the anchor tag attributes for the next posts page link.
         *
         * @since 2.7.0
         *
         * @param string $attributes Attributes for the anchor tag.
         */
        $attr = apply_filters('next_posts_link_attributes', '');
        return '<a href="' . next_posts($max_page, false) . "\" {$attr}>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
    }
}

WordPress Version: 4.3

/**
 * Return the next posts page link.
 *
 * @since 2.7.0
 *
 * @global int      $paged
 * @global WP_Query $wp_query
 *
 * @param string $label    Content for link text.
 * @param int    $max_page Optional. Max pages.
 * @return string|void HTML-formatted next posts page link.
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $nextpage = intval($paged) + 1;
    if (null === $label) {
        $label = __('Next Page &raquo;');
    }
    if (!is_single() && $nextpage <= $max_page) {
        /**
         * Filter the anchor tag attributes for the next posts page link.
         *
         * @since 2.7.0
         *
         * @param string $attributes Attributes for the anchor tag.
         */
        $attr = apply_filters('next_posts_link_attributes', '');
        return '<a href="' . next_posts($max_page, false) . "\" {$attr}>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
    }
}

WordPress Version: 4.1

/**
 * Return the next posts page link.
 *
 * @since 2.7.0
 *
 * @param string $label Content for link text.
 * @param int $max_page Optional. Max pages.
 * @return string|null HTML-formatted next posts page link.
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $nextpage = intval($paged) + 1;
    if (null === $label) {
        $label = __('Next Page &raquo;');
    }
    if (!is_single() && $nextpage <= $max_page) {
        /**
         * Filter the anchor tag attributes for the next posts page link.
         *
         * @since 2.7.0
         *
         * @param string $attributes Attributes for the anchor tag.
         */
        $attr = apply_filters('next_posts_link_attributes', '');
        return '<a href="' . next_posts($max_page, false) . "\" {$attr}>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
    }
}

WordPress Version: 3.9

/**
 * Return the next posts page link.
 *
 * @since 2.7.0
 *
 * @param string $label Content for link text.
 * @param int $max_page Optional. Max pages.
 * @return string|null
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $nextpage = intval($paged) + 1;
    if (null === $label) {
        $label = __('Next Page &raquo;');
    }
    if (!is_single() && $nextpage <= $max_page) {
        /**
         * Filter the anchor tag attributes for the next posts page link.
         *
         * @since 2.7.0
         *
         * @param string $attributes Attributes for the anchor tag.
         */
        $attr = apply_filters('next_posts_link_attributes', '');
        return '<a href="' . next_posts($max_page, false) . "\" {$attr}>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
    }
}

WordPress Version: 3.7

/**
 * Return the next posts page link.
 *
 * @since 2.7.0
 *
 * @param string $label Content for link text.
 * @param int $max_page Optional. Max pages.
 * @return string|null
 */
function get_next_posts_link($label = null, $max_page = 0)
{
    global $paged, $wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if (!$paged) {
        $paged = 1;
    }
    $nextpage = intval($paged) + 1;
    if (null === $label) {
        $label = __('Next Page &raquo;');
    }
    if (!is_single() && $nextpage <= $max_page) {
        $attr = apply_filters('next_posts_link_attributes', '');
        return '<a href="' . next_posts($max_page, false) . "\" {$attr}>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
    }
}