get_next_posts_link( string $label = null, int $max_page )

Retrieves the next posts page link.


Description Description


Parameters Parameters

$label

(string) (Optional) Content for link text.

Default value: null

$max_page

(int) (Optional) Max pages. Default 0.


Top ↑

Return Return

(string|void) HTML-formatted next posts page link.


Top ↑

Source Source

File: wp-includes/link-template.php

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 »' );

	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>';
	}
}

Top ↑

Changelog Changelog

Changelog
Version Description
2.7.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note content
    Contributed by Codex

    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.