get_next_posts_link( string $label = null, int $max_page ): string|void

Retrieves the next posts page link.

Parameters

$labelstringoptional
Content for link text.

Default:null

$max_pageintoptional
Max pages. Default 0.

Return

string|void HTML-formatted next posts page link.

More Information

Gets a link to the previous set of posts within the current query.

Because post queries are usually sorted in reverse chronological order, get_next_posts_link() usually points to older entries (toward the end of the set) and get_previous_posts_link() usually points to newer entries (toward the beginning of the set).

Source

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 &raquo;' );	}	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 )	);	} } 

Hooks

apply_filters( ‘next_posts_link_attributes’, string $attributes )

Filters the anchor tag attributes for the next posts page link.

Changelog

VersionDescription
2.7.0Introduced.

User Contributed Notes

  1. Skip to note 5 content

    Usage when querying the loop with WP_Query

    Pass the $max_page parameter to the get_next_posts_link() function when querying the loop with WP_Query. To get the total amount of pages you can use the max_num_pages property of the custom WP_Query object.

    <?php /** * Set the "paged" parameter (use 'page' if the query is on a static front page). * * @var int $paged */ $paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1; /** @var WP_Query $the_query */ $the_query = new WP_Query( 'cat=1&paged=' . $paged ); if ( $the_query->have_posts() ) :	// The Loop	while ( $the_query->have_posts() ) : $the_query->the_post();	the_title();	endwhile;	// get_next_posts_link() usage with max_num_pages.	echo get_next_posts_link( __( 'Older Entries', 'textdomain' ), $the_query->max_num_pages );	echo get_previous_posts_link( __( 'Newer Entries', 'textdomain' ) );	// Clean up after our custom query.	wp_reset_postdata(); else :	?>	<p><?php _e( 'Sorry, no posts matched your criteria.', 'textdomain' ); ?></p> <?php endif; ?>

You must log in before being able to contribute a note or feedback.