A WordPress-centric search engine for devs and theme authors

get_the_post_navigation › WordPress Function

get_the_post_navigation ( $args = array() )
  • (array) $args { Optional. Default post navigation arguments. Default empty array. @type string $prev_text Anchor text to display in the previous post link. Default '%title'. @type string $next_text Anchor text to display in the next post link. Default '%title'. @type bool $in_same_term Whether link should be in the same taxonomy term. Default false. @type int[]|string $excluded_terms Array or comma-separated list of excluded term IDs. Default empty. @type string $taxonomy Taxonomy, if `$in_same_term` is true. Default 'category'. @type string $screen_reader_text Screen reader text for the nav element. Default 'Post navigation'. @type string $aria_label ARIA label text for the nav element. Default 'Posts'. @type string $class Custom class for the nav element. Default 'post-navigation'. }
    Required: No
    Default: array()
  • (string) Markup for post links.
Defined at:
Change Log:
  • 4.4.0
  • 5.3.0
  • 5.5.0

Retrieves the navigation to next/previous post, when applicable.


function get_the_post_navigation( $args = array() ) {
	// Make sure the nav element has an aria-label attribute: fallback to the screen reader text.
	if ( ! empty( $args['screen_reader_text'] ) && empty( $args['aria_label'] ) ) {
		$args['aria_label'] = $args['screen_reader_text'];

	$args = wp_parse_args(
			'prev_text'          => '%title',
			'next_text'          => '%title',
			'in_same_term'       => false,
			'excluded_terms'     => '',
			'taxonomy'           => 'category',
			'screen_reader_text' => __( 'Post navigation' ),
			'aria_label'         => __( 'Posts' ),
			'class'              => 'post-navigation',

	$navigation = '';

	$previous = get_previous_post_link(
		'<div class="nav-previous">%link</div>',

	$next = get_next_post_link(
		'<div class="nav-next">%link</div>',

	// Only add markup if there's somewhere to navigate to.
	if ( $previous || $next ) {
		$navigation = _navigation_markup( $previous . $next, $args['class'], $args['screen_reader_text'], $args['aria_label'] );

	return $navigation;