If I correctly understand the question you’re asking, you don’t want your CPT to be directly available on the front-end. If so, then just set 'public' => false
when you register the post_type.
Remember that various other args to register_post_type() default to the value of public
(e.g., show_ui
), show when you set 'public' => false
you often times need to explicitly set those args to true, e.g.
$args = array (
// don't show this CPT on the front-end
'public' => false,
// but do allow it to be managed on the back-end
'show_ui' => true,
// other register_post_type() args
) ;
register_post_type ('my_cpt', $args) ;