The “Blog pages show at most” setting is poorly labeled. By default the setting is applied to any archive listing. However, various themes and plugins often override this, so the setting is not guaranteed to be used in any particular archive listing. It can be overridden by altering the “posts_per_page” query var for WP_Query
. It’s directly used in the LIMIT clause in SQL.
It looks like your current page initially loads 10 matching posts, likely your reading setting’s quantity. On scroll it then lazy loads more posts, probably 10 more at a time if you have that many posts in the category. So you probably don’t need to alter the query itself, but you would have used PHP if you needed to do so.
To convert lazy load to pagination behavior you need to remove the lazy load script from the page and add page navigation code to the template. Assuming your theme’s templates are .php based, you can try adding <?php the_posts_navigation(); ?>
to the correct template where you want the nav links to appear. If you’re not sure which template, try using the Template Debugger plugin.
The tricky part will be in removing the lazy load script. Determine where in your theme’s PHP code it enqueues the lazy load script. It should use the wp_enqueue_script()
function (that references a .js file somewhere). If you can locate the right function call, disable it by making it into a PHP comment.
If the enqueued script does more than just providing lazy load functionality, by removing the enqueue code you’ll also lose what ever other functionality is involved. To retain other functionality you’d need to remove the lazy load portion of the JS source code instead of simply commenting out the enqueue code.