wp_link_pages( string|array $args = '' ): string
- Since
- 1.2.0, 5.1.0
- Source
wp-includes/post-template.php:958
Description
<!--nextpage--> Quicktag one or more times). This tag must be within The Loop.Parameters
$argsstring|arrayoptional- Array or string of default arguments.Default:
''$beforestringdefault: is <p> Pages:HTML or text to prepend to each link.$afterstringdefault: is </p>HTML or text to append to each link.$link_beforestringdefault: emptyHTML or text to prepend to each link, inside the<a>tag. Also prepended to the current item, which is not linked.$link_afterstringdefault: emptyHTML or text to append to each Pages link inside the<a>tag. Also appended to the current item, which is not linked.$aria_currentstringdefault: is 'page'The value for the aria-current attribute. Possible values are 'page', 'step', 'location', 'date', 'time', 'true', 'false'.$next_or_numberstringdefault: is 'number'Indicates whether page numbers should be used. Valid values are number and next.$separatorstringdefault: is ' 'Text between pagination links.$nextpagelinkstringdefault: is 'Next Page'Link text for the next page link, if available.$previouspagelinkstringdefault: is 'Previous Page'Link text for the previous page link, if available.$pagelinkstringFormat string for page numbers. The % in the parameter string will be replaced with the page number, so 'Page %' generates "Page 1", "Page 2", etc. Defaults to '%', just the page number.$echoint|booldefault: 1|trueWhether to echo or not. Accepts 1|true or 0|false.
Return
string- Formatted output in HTML.
Hooks fired · 5
5 hooks fire while wp_link_pages() runs, in this order:
- apply_filters( wp_link_pages_args )filterline 985 (+27 into the body)
Filters the arguments used in retrieving page links for paginated posts.
- apply_filters( wp_link_pages_link )filterline 1008 (+50 into the body)
Filters the HTML output of individual page number links.
- apply_filters( wp_link_pages_link )filterline 1022 (+64 into the body)
Filters the HTML output of individual page number links.
- apply_filters( wp_link_pages_link )filterline 1032 (+74 into the body)
Filters the HTML output of individual page number links.
- apply_filters( wp_link_pages )filterline 1047 (+89 into the body)
Filters the HTML output of page links for paginated posts.
Uses · 5
- __()Retrieves the translation of $text.
- wp_parse_args()Merges user defined arguments into defaults array.
- apply_filters()Calls the callback functions that have been added to a filter hook.
- _wp_link_page()Helper function for wp_link_pages().
- esc_attr()Escaping for HTML attributes.
Used by · 2
- link_pages()Print list of pages based on arguments.
- render_block_core_post_content()Renders the `core/post-content` block on the server.
Source
function wp_link_pages( $args = '' ) { global $page, $numpages, $multipage, $more; $defaults = array( 'before' => '<p class="post-nav-links">' . __( 'Pages:' ), 'after' => '</p>', 'link_before' => '', 'link_after' => '', 'aria_current' => 'page', 'next_or_number' => 'number', 'separator' => ' ', 'nextpagelink' => __( 'Next page' ), 'previouspagelink' => __( 'Previous page' ), 'pagelink' => '%', 'echo' => 1, ); $parsed_args = wp_parse_args( $args, $defaults ); /** * Filters the arguments used in retrieving page links for paginated posts. * * @since 3.0.0 * * @param array $parsed_args An array of page link arguments. See wp_link_pages() * for information on accepted arguments. */ $parsed_args = apply_filters( 'wp_link_pages_args', $parsed_args ); $output = ''; if ( $multipage ) { if ( 'number' === $parsed_args['next_or_number'] ) { $output .= $parsed_args['before']; for ( $i = 1; $i <= $numpages; $i++ ) { $link = $parsed_args['link_before'] . str_replace( '%', $i, $parsed_args['pagelink'] ) . $parsed_args['link_after']; if ( $i !== $page || ! $more && 1 === $page ) { $link = _wp_link_page( $i ) . $link . '</a>'; } elseif ( $i === $page ) { $link = '<span class="post-page-numbers current" aria-current="' . esc_attr( $parsed_args['aria_current'] ) . '">' . $link . '</span>'; } /** * Filters the HTML output of individual page number links. * * @since 3.6.0 * * @param string $link The page number HTML output. * @param int $i Page number for paginated posts' page links. */ $link = apply_filters( 'wp_link_pages_link', $link, $i ); // Use the custom links separator beginning with the second link. $output .= ( 1 === $i ) ? ' ' : $parsed_args['separator']; $output .= $link; } $output .= $parsed_args['after']; } elseif ( $more ) { $output .= $parsed_args['before']; $prev = $page - 1; if ( $prev > 0 ) { $link = _wp_link_page( $prev ) . $parsed_args['link_before'] . $parsed_args['previouspagelink'] . $parsed_args['link_after'] . '</a>'; /** This filter is documented in wp-includes/post-template.php */ $output .= apply_filters( 'wp_link_pages_link', $link, $prev ); } $next = $page + 1; if ( $next <= $numpages ) { if ( $prev ) { $output .= $parsed_args['separator']; } $link = _wp_link_page( $next ) . $parsed_args['link_before'] . $parsed_args['nextpagelink'] . $parsed_args['link_after'] . '</a>'; /** This filter is documented in wp-includes/post-template.php */ $output .= apply_filters( 'wp_link_pages_link', $link, $next ); } $output .= $parsed_args['after']; } }History
Introduced in 1.2.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
aria_current argument.from the docblockAbout this page
- Parsed data
- Generated from the wordpress-develop 7.0.4 tag, from
src/wp-includes/post-template.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.