{"id":77086,"date":"2017-11-06T09:19:44","date_gmt":"2017-11-06T09:19:44","guid":{"rendered":"https:\/\/sk.wordpress.org\/plugins\/remove-cpt-base\/"},"modified":"2025-12-01T22:03:00","modified_gmt":"2025-12-01T22:03:00","slug":"remove-cpt-base","status":"publish","type":"plugin","link":"https:\/\/mn.wordpress.org\/plugins\/remove-cpt-base\/","author":9548563,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"6.7","stable_tag":"6.7","tested":"6.9.4","requires":"3.0","requires_php":"5.6","requires_plugins":null,"header_name":"Remove CPT base","header_author":"KubiQ","header_description":"Remove custom post type base slug from permalink url","assets_banners_color":"fec426","last_updated":"2025-12-01 22:03:00","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.me\/jakubnovaksl","header_plugin_uri":"https:\/\/www.paypal.me\/jakubnovaksl","header_author_uri":"https:\/\/kubiq.sk","rating":5,"author_block_rating":0,"active_installs":10000,"downloads":97658,"num_ratings":33,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"6.1":{"tag":"6.1","author":"kubiq","date":"2022-11-17 22:38:45"},"6.2":{"tag":"6.2","author":"kubiq","date":"2023-06-15 20:16:28"},"6.3":{"tag":"6.3","author":"kubiq","date":"2023-08-11 07:43:56"},"6.4":{"tag":"6.4","author":"kubiq","date":"2023-10-25 07:27:31"},"6.5":{"tag":"6.5","author":"kubiq","date":"2024-03-21 22:08:45"},"6.6":{"tag":"6.6","author":"kubiq","date":"2025-03-27 13:45:23"},"6.7":{"tag":"6.7","author":"kubiq","date":"2025-12-01 22:03:00"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":1,"5":32},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1759289,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1759289,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":1759289,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1759289,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["6.1","6.2","6.3","6.4","6.5","6.6","6.7"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[11100,1794,2662,3511,561],"plugin_category":[],"plugin_contributors":[81042],"plugin_business_model":[],"class_list":["post-77086","plugin","type-plugin","status-publish","hentry","plugin_tags-base","plugin_tags-custom-post-type","plugin_tags-permalink","plugin_tags-remove","plugin_tags-slug","plugin_contributors-kubiq","plugin_committers-kubiq"],"banners":{"banner":"https:\/\/ps.w.org\/remove-cpt-base\/assets\/banner-772x250.png?rev=1759289","banner_2x":"https:\/\/ps.w.org\/remove-cpt-base\/assets\/banner-1544x500.png?rev=1759289","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/remove-cpt-base\/assets\/icon-128x128.png?rev=1759289","icon_2x":"https:\/\/ps.w.org\/remove-cpt-base\/assets\/icon-256x256.png?rev=1759289","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Remove custom post type base slug from url<\/p>\n\n<ul>\n    <li>possibility to select specific custom post type(s)<\/li>\n    <li>auto redirect old slugs to no-base slugs<\/li>\n<\/ul>\n\n<h3>Yoast SEO specifics<\/h3>\n\n<p>If you're using Yoast SEO plugin, after you change something in the Remove CPT base plugin, you should deactivate Yoast SEO and activate it back again to refresh its yoast_indexable database table, so it will generate correct og:url, canonical url and JSON-LD urls.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>remove-cpt-base<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>6.7<\/h4>\n\n<ul>\n<li>tested on WP 6.9<\/li>\n<\/ul>\n\n<h4>6.6<\/h4>\n\n<ul>\n<li>tested on WP 6.7<\/li>\n<li>fix PHP warning - make sure that post_type was not removed already<\/li>\n<li>better HTTPS detection<\/li>\n<li>use HTTP_HOST if SERVER_NAME is localhost - fix for kinsta hosting<\/li>\n<li>new rcptb_current_url filter that you can use to modify output of the get_current_url function<\/li>\n<\/ul>\n\n<h4>6.5<\/h4>\n\n<ul>\n<li>tested on WP 6.5<\/li>\n<\/ul>\n\n<h4>6.4<\/h4>\n\n<ul>\n<li>tested on WP 6.4<\/li>\n<\/ul>\n\n<h4>6.3<\/h4>\n\n<ul>\n<li>fix deprecated notice for PHP 8.2<\/li>\n<\/ul>\n\n<h4>6.2<\/h4>\n\n<ul>\n<li>tested on WP 6.2<\/li>\n<li>added Yoast SEO warning in the description<\/li>\n<\/ul>\n\n<h4>6.1<\/h4>\n\n<ul>\n<li>tested on WP 6.1<\/li>\n<li>use request hook instead of pre_get_posts to fix 404 in console<\/li>\n<\/ul>\n\n<h4>6.0<\/h4>\n\n<ul>\n<li>fix for WPML hierarchical translated posts<\/li>\n<\/ul>\n\n<h4>5.9<\/h4>\n\n<ul>\n<li>added nonce and security checks<\/li>\n<\/ul>\n\n<h4>5.8<\/h4>\n\n<ul>\n<li>tested on WP 5.9<\/li>\n<\/ul>\n\n<h4>5.7<\/h4>\n\n<ul>\n<li>tested on WP 5.5<\/li>\n<li>minor fix<\/li>\n<\/ul>\n\n<h4>5.6<\/h4>\n\n<ul>\n<li>tested again with WPML, Polylang and Custom Post Type Permalinks and fixed<\/li>\n<\/ul>\n\n<h4>5.5<\/h4>\n\n<ul>\n<li>tested on WP 5.5<\/li>\n<li>another fix for Custom Post Type Permalinks plugin<\/li>\n<\/ul>\n\n<h4>5.4<\/h4>\n\n<ul>\n<li>enable previews for CPTs without base<\/li>\n<\/ul>\n\n<h4>5.3<\/h4>\n\n<ul>\n<li>make it works with WPML<\/li>\n<li>make it works with Polylang<\/li>\n<li>make it works with Custom Post Type Permalinks plugin<\/li>\n<\/ul>\n\n<h4>5.2<\/h4>\n\n<ul>\n<li>tested on WP 5.4<\/li>\n<\/ul>\n\n<h4>5.1<\/h4>\n\n<ul>\n<li>removed auto-prevent slug duplicates<\/li>\n<li>removed debug mode<\/li>\n<li>removed remove_cpt_base_skip filter<\/li>\n<li>use default WP function instead of custom<\/li>\n<li>make it works for custom rewrite slugs<\/li>\n<li>prioritize page and post like WP does<\/li>\n<\/ul>\n\n<h4>5.0<\/h4>\n\n<ul>\n<li>YOU HAVE TO SAVE YOUR SETTINGS AGAIN, because:<\/li>\n<li>added alternation option for each post type separately<\/li>\n<li>added debug mode<\/li>\n<\/ul>\n\n<h4>4.8<\/h4>\n\n<ul>\n<li>fix alternative CPT children solving for nested children<\/li>\n<\/ul>\n\n<h4>4.7<\/h4>\n\n<ul>\n<li>alternative CPT children solving<\/li>\n<\/ul>\n\n<h4>4.6<\/h4>\n\n<ul>\n<li>fix server port redirect<\/li>\n<\/ul>\n\n<h4>4.5<\/h4>\n\n<ul>\n<li>make it works for WP installations in directory<\/li>\n<\/ul>\n\n<h4>4.4<\/h4>\n\n<ul>\n<li>minor changes<\/li>\n<\/ul>\n\n<h4>4.3<\/h4>\n\n<ul>\n<li>fix for some endpoints and make sure post is not interpreted as attachment<\/li>\n<\/ul>\n\n<h4>4.2<\/h4>\n\n<ul>\n<li>fix for hierarchical CPTs on some servers<\/li>\n<\/ul>\n\n<h4>4.1<\/h4>\n\n<ul>\n<li>make it works for posts interpreted like category by WP<\/li>\n<\/ul>\n\n<h4>4.0<\/h4>\n\n<ul>\n<li>tested on WP 5.2<\/li>\n<li>make it works for hierarchical post types and different permalink structures<\/li>\n<li>going back to 'pre_get_posts'<\/li>\n<li>optimize generating slug for duplicate names<\/li>\n<\/ul>\n\n<h4>3.3<\/h4>\n\n<ul>\n<li>change HTTP code from 404 to 200<\/li>\n<\/ul>\n\n<h4>3.2<\/h4>\n\n<ul>\n<li>fix for query strings<\/li>\n<\/ul>\n\n<h4>3.1<\/h4>\n\n<ul>\n<li>add custom endpoint rewrites support<\/li>\n<\/ul>\n\n<h4>3.0<\/h4>\n\n<ul>\n<li>stop using complicated 'pre_get_posts' and handle 404 instead<\/li>\n<\/ul>\n\n<h4>2.3<\/h4>\n\n<ul>\n<li>tested on WP 5.0<\/li>\n<\/ul>\n\n<h4>2.2<\/h4>\n\n<ul>\n<li>fix 404<\/li>\n<\/ul>\n\n<h4>2.1<\/h4>\n\n<ul>\n<li>fix redirect loop in WPML and WooCommerce<\/li>\n<\/ul>\n\n<h4>2.0<\/h4>\n\n<ul>\n<li>stop using .htaccess rules<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>auto init after permalinks updated<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>add uninstall hook<\/li>\n<li>add duplicate slug check<\/li>\n<li>minor updates<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>First version<\/li>\n<\/ul>","raw_excerpt":"Remove custom post type base slug from url","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/77086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=77086"}],"author":[{"embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kubiq"}],"wp:attachment":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=77086"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=77086"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=77086"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=77086"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=77086"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=77086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}