I have been debugging this but I cannot seem to find what’s wrong. An extra eye would help!
I am trying to add pagination on my blog posts. Here is the code
On home.php
<?php
$total_pages = $wp_query->max_num_pages;
if ( $total_pages > 1 ) : ?>
<div class="pagination col-12 text-center mt-3">
<?php the_posts_navigation(); ?>
</div>
<?php endif; ?>
And on template-tags.php
if ( ! function_exists( 'the_posts_navigation' ) ) :
function the_posts_navigation() {
global $wp_query;
echo paginate_links( array(
'base' => get_permalink() . 'page/%#%' . '/', 'format' => '?paged=%#%',
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'prev_text' => return_svg( 'arrow-left' ),
'next_text' => return_svg( 'arrow-right' ),
) );
}
endif;
Any idea what seems to be wrong? Thank you so much!
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
The most common problem of similar questions I see on WPSE – contributors confused about template hierarchy.
In your case,
it’s better to check Common WordPress template files section here
These items most important for your question:
front-page.php
The front page template is always used as the site front page if it exists, regardless of what settings on Admin > Settings > Reading.
home.php
The home page template is the front page by default. If you do not set WordPress to use a static front page, this template is used to show latest posts.
index.php
The main template file. It is required in all themes.
So, front-page.php used first, then home.php(if it exists in your theme and Admin>Settings>Reading is set to “Your latest posts”), then index.php.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0