based on the docu:
- the $in_same_term parameter in https://developer.wordpress.org/reference/functions/next_post_link/
- the categories’ parameters in WP_Query https://developer.wordpress.org/reference/classes/wp_query/#category-parameters
- and how to get a post’s category https://developer.wordpress.org/reference/functions/get_the_category/
- and in collaboration with @zackwww;
‘infinitely looping ‘next post’ link at the bottom of a post that only links to posts in that category’
if( get_adjacent_post(true, '', false, 'category') ) {
next_post_link($format="%link", $link = 'Next Article', $in_same_term = true, $taxonomy = 'category');
} else {
$thiscat = get_the_category();
$catslug = $thiscat[0]->slug;
$last = new WP_Query( array(
'posts_per_page' => 1,
'order' => 'ASC',
'category_name' => $catslug
) );
$last->the_post();
echo '<a href="' . get_permalink() . '">Next Article</a>';
wp_reset_postdata();
}