The paginate_links
Codex function reference has some sample code that’s being reposted all over the net.
It has a section that uses a variable called $big = 999999999; // need an unlikely integer
:
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
) );
And is used in str_replace
in the echo paginate_links
function.
Is this some form of encapsulation?
Note the
get_pagenum_link( $big )
: This will create an URL (not a link) based on the number provided in the first parameter.That function is used to get the basic pattern for the URL, and the high integer is used here, because:
apply_filters('get_pagenum_link', $result)
and might be changed by plugins. This risk is slightly higher for numbers matching existing pages, for example when a plugin implements separate titles for sub-pages.So this is just a … dirty convention, a signal to other plugins: Don’t change that please! I think
PHP_INT_MAX
would have been better, but still ugly. And I wonder how many plugin developers know that.The number is then replaced with the placeholder needed in
paginate_links()
.What you see here is an incomplete API. Try to learn something from this example – do not release incomplete APIs, or your docs will look embarrassing. 🙂