The content_pagination WordPress PHP filter allows you to modify the “pages” created after splitting the post content based on the presence of <!-- nextpage --> tags.
Usage
add_filter('content_pagination', 'my_custom_content_pagination', 10, 2);
function my_custom_content_pagination($pages, $post) {
// your custom code here
return $pages;
}
Parameters
$pages(string[]): An array of “pages” from the post content split by<!-- nextpage -->tags.$post(WP_Post): The current post object.
More information
See WordPress Developer Resources: content_pagination
Examples
Add a custom header to each page
This example adds a custom header to each “page” of the post content.
function my_custom_content_pagination($pages, $post) {
$header = '<h2>Custom Header</h2>';
foreach ($pages as &$page) {
$page = $header . $page;
}
return $pages;
}
add_filter('content_pagination', 'my_custom_content_pagination', 10, 2);
Remove empty pages
This example removes empty pages from the array.
function my_custom_content_pagination($pages, $post) {
$pages = array_filter($pages, 'trim');
return $pages;
}
add_filter('content_pagination', 'my_custom_content_pagination', 10, 2);
Reverse the order of pages
This example reverses the order of the pages.
function my_custom_content_pagination($pages, $post) {
$pages = array_reverse($pages);
return $pages;
}
add_filter('content_pagination', 'my_custom_content_pagination', 10, 2);
Add page numbers to each page
This example adds a page number to each “page” of the post content.
function my_custom_content_pagination($pages, $post) {
foreach ($pages as $index => &$page) {
$pageNumber = $index + 1;
$page = "<span>Page {$pageNumber}</span>" . $page;
}
return $pages;
}
add_filter('content_pagination', 'my_custom_content_pagination', 10, 2);
Limit the number of pages
This example limits the number of pages to a maximum of 3.
function my_custom_content_pagination($pages, $post) {
$pages = array_slice($pages, 0, 3);
return $pages;
}
add_filter('content_pagination', 'my_custom_content_pagination', 10, 2);