Adding another word in front of post url

I have a wordpress website with bunch of posts.
My problem is that I need to change the URLs from

website.com/post-name

to

Read More
website.com/specialword/post-name

The “specialword” is what I need to add in front of those post names, but ONLY for the post type – posts.

Can someone help me?

I need this badly, mostly because of the SEO purposes so I can keep the URLs from the previous website that wasn’t done in wordpress.

Thank you!
Slavisa

Related posts

Leave a Reply

2 comments

  1. You can do it from Settings > Permalinks.

    Select the Custom Structure radio button, and put this in the text field next to it:

    /myspecialword/%postname%
    

    Works.

  2. I think the only (the easiest) solution is to change permastructs for custom post types after registering them and add your ‘magic word’ to permalink structure.

    So set (in parmalinks settings) your permalink structure to: /my-magic-word/%postname%/ and then manually modify permastructs of your custom post types.

    You can do this like so (add it to your functions.php file):

    function my_init() {
        global $wp_rewrite;
    
        // Let's assume you register your CPT Books in here
        $args = array( 'public' => true, 'label' => 'Books' );
        register_post_type( 'book', $args );
    
        // after registering your CPT, you have to change it's permastruct
        $wp_rewrite->extra_permastructs['book']['struct'] = "book/%book%";  // it's without 'my-magic-word' - you should do this for every CPT that should not have 'my-magic-word' in url
    }
    add_action('init', 'my_init');
    

    Then go to permalink settings and save them to flush rewrite rules.

    PS. I think you could try to use with_front param, but I’m not sure if it will be easier (or if it even will work) than this solution.