// Register Custom Post Type: Folder function create_folders_post_type() { register_post_type('folder', array( 'labels' => array( 'name' => __('Folders'), 'singular_name' => __('Folder'), ), 'public' => true, 'hierarchical' => true, 'show_in_menu' => true, 'supports' => array('title', 'editor'), 'show_in_rest' => true, )); } add_action('init', 'create_folders_post_type'); // Register Custom Post Type: File function create_files_post_type() { register_post_type('file', array( 'labels' => array( 'name' => __('Files'), 'singular_name' => __('File'), ), 'public' => true, 'show_in_menu' => true, 'supports' => array('title'), 'show_in_rest' => true, )); } add_action('init', 'create_files_post_type'); // Register Taxonomy: Folder Structure function create_folder_structure_taxonomy() { register_taxonomy('folder_structure', array('file'), array( 'hierarchical' => true, 'labels' => array( 'name' => __('Folder Structure'), 'singular_name' => __('Folder'), ), 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, )); } add_action('init', 'create_folder_structure_taxonomy'); /* header.php */ Cresignsys

Cresignsys

Admin Panel

Public Files

Folder 1
Folder 2

Private Files

Private Folder 1
Private Folder 2