I'd like to keep the pagination links for /page/2/, /page/373/, etc but instead of changing the URL on the browser i want everything to load on the archive main page.
Ideally all those paginated URLs should redirect to the first page of the archive.
I don't want a "load more" button i want to keep the logic of pages but load them via ajax keeping url unchanged.
How can i do this? Any help is appreciated.
I'd like to keep the pagination links for /page/2/, /page/373/, etc but instead of changing the URL on the browser i want everything to load on the archive main page.
Ideally all those paginated URLs should redirect to the first page of the archive.
I don't want a "load more" button i want to keep the logic of pages but load them via ajax keeping url unchanged.
How can i do this? Any help is appreciated.
you might use the $.load
and preventDefault()
from jQuery.
Assugming that you have .page-link
link class on each url in pagination and you have all the posts in the #content
div following code can help you to load the posts in that div on that particular page.
$("body").on("click", "a.page-link", function(e) {
e.preventDefault();
$("#content").load($(this).attr("href") + " #content");
});
This will replace the current posts in that page with the new posts from that particular page. A look on your div structure might help me to write the complete code for you which can work on your site.
Very high Level:
Kill your backend process with die()
Back on the frontend, take the markup the ajax request returned and replace your old markup
This approach has the advantage, that your markup gets rendered the same way as your normal archive page.
You could also try to accomplish this by making a call to the Wordpress REST API, but you would have to take care of templating in Javascript.
If you need more details on a certain step, just ask.