rewrite rules - Wordpress CPT slug and page slug conflicts

admin2025-06-06  9

I have one page slug "new-site" also i have another custom post type with same slug "new-site" while i browse site then it directally goes to archive page and show all the posts from CPT new site.

How can i solve if i open with this url to page and for cpt post detail.

Thanks

I have one page slug "new-site" also i have another custom post type with same slug "new-site" while i browse site http://example/new-site then it directally goes to archive page and show all the posts from CPT new site.

How can i solve if i open with this url to page http://example/new-site and http://example/new-site/post-slug for cpt post detail.

Thanks

Share Improve this question asked Mar 8, 2016 at 7:42 PusPus 1034 bronze badges 2
  • And the archive of CPT? Do you want it? – cybmeta Commented Mar 8, 2016 at 7:52
  • I dont need archive CPT, i just need to open page while i enter example/new-site and i need CPT single page while i open example/new-site/post-slug – Pus Commented Mar 8, 2016 at 7:54
Add a comment  | 

1 Answer 1

Reset to default 2

As you don't need the CPT archvie, the easiest way to use example/new-site to open a page, and example/new-site/post-slug to open single posts of "new-site" post type, is to declare has_archive => false when registering the CPT:

add_action( 'init', 'cyb_register_cpt' );
function cyb_register_cpt() {
    $args = array(
      // .....
      'has_archive' => false
    );
    register_post_type( 'new-site', $args );
}

PD: Remember to flush the rewrite rules:

add_action( 'init', 'cyb_register_cpt' );
function cyb_register_cpt() {
    $args = array(
      // .....
      'has_archive' => false
    );
    register_post_type( 'new-site', $args );
}

register_activation_hook( __FILE__, function () {
    cyb_register_cpt();
    flush_rewrite_rules();
} );

register_deactivation_hook( __FILE__, function () {
    flush_rewrite_rules();
} );
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749190781a317123.html

最新回复(0)