by Lovro Hrust on WordPress.org
Create navigation to next/previous pages similar to navigation for posts. Previous and next pages are determined from menu.
Plugin to support navigation by pages – similar to built in function the_posts_navigation() for posts.
Pages in navigation are filtered by provided menu (Primary menu by default) and sorted in the same order as in menu.
By default, main menu is used, but different menu could be used by calling function for displaying with different menu as parameter.
This plugin works only with classic themes. With FSE themes it will not work, since it depends on classic menus.
Just install and call the_pages_navigation() in your php template. There is also a get_the_pages_navigation() function which returns string with same content.
Arguments to these functions could be supplied, all optional.
* $menu – a menu ID, slug, name, or object (WP_Term) for which to show pages
* $start_position – start position from which position in menu to start navigation
? $end_position – to which position in menu to show navigation
There are filters that can help to customize plugin output.
Change menu filter
apply_filters('page_nav_menu', $default_menu)
Filters menu used for navigation.
Arrow filters
apply_filters( 'page_nav_left_arrow', $HTML )
apply_filters( 'page_nav_right_arrow', $HTML )
Filters arrow output.
Filter output
apply_filters( 'arrow_wrapper', $HTML_output, $left, $enabled, $output_image, $output_link, $output_div, $output_text )
Filters whole HTML output.
add_filter( 'page_nav_left_arrow', function() {
return '';
} );