Even though this question sounds like others here is my problem:

The site I am updating had a permalink structure of /%postname%, during this time I created a custom post type of "popups" (rewrite slug = 'popups') so the urls were:


Now the site has a blog, and the permalink structure has been changed to /blog/%postname%, this changed the custom post type url structure to:


I want to keep the blog permalink structure as /blog/%postname% but I want to have a custom url structure for my custom post type that is not tied to the blog permalink. So instead of the urls for my custom post type of popups showing up as:


I want it to show up as:


while retaining the blog permalink of /blog/%postname%

  • Did you move your WordPress installation to blog sub-directory?
    – Mamaduka
    Commented Sep 6, 2011 at 19:04
  • /blog is not a sub-directory, its a prefix to the permalink
    – farinspace
    Commented Sep 7, 2011 at 20:22

1 Answer 1


When you registered the post type, one of the arguments was rewrite, which took an array. make sure there's a with_front argument in the rewrite array, and set it to false.

$args = array(
    // other stuf...
    'rewrite' => array( 
         'slug' => 'popups',
         'with_front' => false
     // other stuf...

register_post_type( 'type', $args );

That should take care of it.

Important: Be sure to flush your rewrite rules after changing the code (go to settings > permalinks and hit save).

  • 1
    You don't have to hit save to flush your rewrite rules, just visiting the page will do it :) Commented Sep 7, 2011 at 0:51
  • 1
    Does anyone know if it is possible to attach /%year%/%month%/%postname%/ AFTER the slug? I'm in dire need of the code to attach that AFTER the slug, but BEFORE the postname. I would super-hugely-massively appreciate any help :)
    – cmegown
    Commented May 15, 2012 at 20:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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