Remove CPT base

Description

Remove custom post type base slug from url

  • auto-prevent slug duplicates
  • possibility to select only specific custom post types
  • auto redirect old slugs to no-base slugs
  • use remove_cpt_base_skip filter to skip conflicts – 2 arguments: $skip, $query

Installation

  1. Upload remove-cpt-base directory to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

Reviews

October 21, 2019
amazing tweak plugin. this thing is very hard and messy to do manually. plugin totally works as it says.
October 20, 2019
I've tested all the solutions posted in every forum you could imagine, but every one of them was incomplete somehow, until I hopelessly came across this plugin and found what I was looking for. Thanks a lot!
September 11, 2019
The developer did amazingly I'm waiting for this type of plugin past 3 years Finlay developer developed the amazing Plugin Thanks to the plugin developer keep it up Excellent Work!
September 9, 2019
It was a long search until finally found your plugin. Thank you so much for creating this. I think there should be a native WordPress solution for this issue, but I'm glad your plugin solves it all. Thank you again!
July 18, 2019
I have been searching the web for solutions like this but none of those code snippets totally fit my need. This is a slim plugin which does what it says and the author is really into making it the best of it's kind out there. I received awesome and very immediate support! Though I still wonder why there is no in core solution. The argument about duplicate slugs is not valid for me as wordpress finds it's ways to prevent those within pages and posts as well. So I don't really understand why they force the base CPT slug upon us. Again: Thanks so much for your help. 🙂
Read all 7 reviews

Contributors & Developers

“Remove CPT base” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Remove CPT base” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

5.0

  • YOU HAVE TO SAVE YOUR SETTINGS AGAIN, because:
  • added alternation option for each post type separately
  • added debug mode

4.8

  • fix alternative CPT children solving for nested children

4.7

  • alternative CPT children solving

4.6

  • fix server port redirect

4.5

  • make it works for WP installations in directory

4.4

  • new filter for developers to skip RCPTB for some queries – use remove_cpt_base_skip with 2 arguments: $skip and $query
  • example for bbPress forums conflicts

    add_filter( ‘remove_cpt_base_skip’, ‘skip_rcptb’, 10, 2 );
    function skip_rcptb( $skip, $query ){
    if( isset( $query->query[‘post_type’] ) && $query->query[‘post_type’] === ‘forum’ ){
    $skip = true;
    }
    return $skip;
    }

4.3

  • fix for some endpoints and make sure post is not interpreted as attachment

4.2

  • fix for hierarchical CPTs on some servers

4.1

  • make it works for posts interpreted like category by WP

4.0

  • tested on WP 5.2
  • make it works for hierarchical post types and different permalink structures
  • going back to ‘pre_get_posts’
  • optimize generating slug for duplicate names

3.3

  • change HTTP code from 404 to 200

3.2

  • fix for query strings

3.1

  • add custom endpoint rewrites support

3.0

  • stop using complicated ‘pre_get_posts’ and handle 404 instead

2.3

  • tested on WP 5.0

2.2

  • fix 404

2.1

  • fix redirect loop in WPML and WooCommerce

2.0

  • stop using .htaccess rules

1.2

  • auto init after permalinks updated

1.1

  • add uninstall hook
  • add duplicate slug check
  • minor updates

1.0

  • First version