Using WordPress ‘get_adjacent_post()’ PHP function

The get_adjacent_post() WordPress PHP function retrieves the adjacent post, which can be either the next or previous post.

Usage

get_adjacent_post($in_same_term, $excluded_terms, $previous, $taxonomy);

Parameters

  • $in_same_term (bool) – Optional. Whether the post should be in the same taxonomy term. Default: false
  • $excluded_terms (int | string) – Optional. Array or comma-separated list of excluded term IDs. Default: ”
  • $previous (bool) – Optional. Whether to retrieve the previous post. Default: true
  • $taxonomy (string) – Optional. Taxonomy, if $in_same_term is true. Default: ‘category’

More information

See WordPress Developer Resources: get_adjacent_post()

Examples

Get previous post in the same taxonomy

// Get previous post in the same taxonomy
$prev_post = get_adjacent_post(true, '', true, 'taxonomy_slug');

// If previous post exists, display a link to it
if (is_a($prev_post, 'WP_Post')) {
    echo '<a href="' . get_permalink($prev_post->ID) . '">' . get_the_title($prev_post->ID) . '</a>';
}

Get next post in the same taxonomy

// Get next post in the same taxonomy
$next_post = get_adjacent_post(true, '', false, 'taxonomy_slug');

// If next post exists, display a link to it
if (is_a($next_post, 'WP_Post')) {
    echo '<a href="' . get_permalink($next_post->ID) . '">' . get_the_title($next_post->ID) . '</a>';
}

Get previous post excluding specific terms

// Get previous post excluding term IDs 10 and 20
$prev_post = get_adjacent_post(false, '10,20', true);

// If previous post exists, display a link to it
if (is_a($prev_post, 'WP_Post')) {
    echo '<a href="' . get_permalink($prev_post->ID) . '">' . get_the_title($prev_post->ID) . '</a>';
}

Get next post excluding specific terms

// Get next post excluding term IDs 10 and 20
$next_post = get_adjacent_post(false, '10,20', false);

// If next post exists, display a link to it
if (is_a($next_post, 'WP_Post')) {
    echo '<a href="' . get_permalink($next_post->ID) . '">' . get_the_title($next_post->ID) . '</a>';
}

Get previous post in a custom taxonomy

// Get previous post in a custom taxonomy called 'custom_taxonomy'
$prev_post = get_adjacent_post(true, '', true, 'custom_taxonomy');

// If previous post exists, display a link to it
if (is_a($prev_post, 'WP_Post')) {
    echo '<a href="' . get_permalink($prev_post->ID) . '">' . get_the_title($prev_post->ID) . '</a>';
}