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? Dec 24, 2018 at 17:31
  • @KrzysiekDróżdż yes it is and the slug is "events". Dec 24, 2018 at 17:39

1 Answer 1


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. Dec 24, 2018 at 18:28
  • @Genom also it’s safer - you shouldn’t use ‘add_query_arg’ without url param Dec 24, 2018 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.