I would like to get the first page of an archive. I have an archive with events. /events display events, which are not finished yet. /events?past display past events. I use get/remove_query_arg to generate an URL for a link, so that users can switch between past and future events. The problem is, if user is at page x in past events and try to switch to future events. Future events may not have the page x. This results in an error. URL is generated like this:


esc_url(add_query_arg('past', ''))

This method preserves the page number within the URL: at /events/page/88?past URL for future events becomes /events/page/88, which doesn't exist.

I was wondering if there is a "WordPress way" of doing this?

  • Is that a custom post type archive? What is the slug for that CPT? – Krzysiek Dróżdż Dec 24 '18 at 17:31
  • @KrzysiekDróżdż yes it is and the slug is "events". – Saren Tasciyan Dec 24 '18 at 17:39

You can get link to post type archive using... ‘get_post_type_archive_link’ function:

esc_url(add_query_arg('past', '', get_post_type_archive_link('events')));
  • Yes, this looks like a better solution than using regex replace. – Saren Tasciyan Dec 24 '18 at 18:28
  • @Genom also it’s safer - you shouldn’t use ‘add_query_arg’ without url param – Krzysiek Dróżdż Dec 24 '18 at 18:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.