diff --git a/includes/arcHIVE-custom-post-type-resources.php b/includes/arcHIVE-custom-post-type-resources.php index 85ca767..f939c12 100644 --- a/includes/arcHIVE-custom-post-type-resources.php +++ b/includes/arcHIVE-custom-post-type-resources.php @@ -32,14 +32,14 @@ function archive_wpplugin_init_custom_post_resource() { $labels = array( - 'name' => _x( 'All resources', 'Post Type General Name', 'text_domain' ), + 'name' => _x( 'Resources', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Resource', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Resources', 'text_domain' ), 'parent_item_colon' => __( 'Parent resources:', 'text_domain' ), 'all_items' => __( 'All the resources', 'text_domain' ), 'view_item' => __( 'Show the resource', 'text_domain' ), 'add_new_item' => __( 'Add a new resource', 'text_domain' ), - 'add_new' => __( 'Add new resources', 'text_domain' ), + 'add_new' => __( 'Add new resource', 'text_domain' ), 'edit_item' => __( 'Edit the resource', 'text_domain' ), 'update_item' => __( 'Save the resource', 'text_domain' ), 'search_items' => __( 'Search the resource', 'text_domain' ), @@ -47,23 +47,36 @@ 'not_found_in_trash' => __( 'We couldn\'t find any resource in the bin', 'text_domain' ), ); $rewrite = array( - 'slug' => 'resources/%archive_resourcetype%', - 'with_front' => true, - 'hierarchical' => true, + 'slug' => 'resource', ); + // https://wordpress.stackexchange.com/questions/108338/capabilities-and-custom-post-types#108375 + // https://developer.wordpress.org/reference/functions/register_post_type/#capability_type + $capabilities = array( + 'read' => 'read_archive_resource', + 'publish_posts' => 'publish_archive_resources', + 'edit_posts' => 'edit_archive_resources', + 'edit_published_posts' => 'edit_archive_published_resources', + 'edit_others_posts' => 'edit_other_archive_resources', + 'delete_posts' => 'delete_archive_resources', + 'delete_published_posts' => 'delete_archive_published_resources', + 'delete_others_posts' => 'delete_archive_others_resources', + 'delete_private_posts' => 'delete_archive_private_resources', + 'upload_files' => 'upload_media_files', + 'manage_categories' => 'manage_archive_resources_types', + ); $args = array( 'label' => __( 'archive_resource', 'text_domain' ), 'description' => __( 'Resources', 'text_domain' ), 'labels' => $labels, 'supports' => array( 'title', 'editor', 'thumbnail', 'trackbacks', 'revisions', 'custom-fields', 'page-attributes' ), - 'taxonomies' => array('category','post_tag','archive_resourcetype'), + 'taxonomies' => array('archive_resource_category','archive_resource_category'), 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, - 'menu_position' => 15, + 'menu_position' => 5, 'menu_icon' => 'dashicons-book', 'can_export' => true, 'has_archive' => 'resources', @@ -71,6 +84,8 @@ 'publicly_queryable' => true, 'capability_type' => 'post', 'rewrite' => $rewrite, + 'capabilities' => $capabilities, + 'map_meta_cap' => true //neded to apply the new capabilities. ); register_post_type( 'archive_resource', $args ); @@ -80,19 +95,32 @@ add_action( 'init', 'archive_wpplugin_init_custom_post_resource', 0 ); + // give capabilities once the custom post id activated + function archive_wpplugin_add_caps() { + // gets the XX role + // $admins = get_role( '' ); + // $admins->add_cap( ); + // gets the administrator role + + +} +add_action( 'admin_init', 'archive_wpplugin_add_caps'); + + + /** * Start custom taxonomies * ---------------------------------------------------------------------------- * https://developer.wordpress.org/plugins/taxonomies/working-with-custom-taxonomies/ */ - // Register Custom Taxonomy - function archive_wpplugin_register_taxonomy_resource() { + // Register Custom Taxonomy Category for Resources + function archive_wpplugin_register_resource_category() { $labels = array( - 'name' => _x( 'Type of resources', 'Taxonomy General Name', 'text_domain' ), + 'name' => _x( 'Resources Types', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Type of resource', 'Taxonomy Singular Name', 'text_domain' ), - 'menu_name' => __( 'Type resources', 'text_domain' ), + 'menu_name' => __( 'Resources Types', 'text_domain' ), 'all_items' => __( 'All type resources', 'text_domain' ), 'parent_item' => __( 'Parent type resource', 'text_domain' ), 'parent_item_colon' => __( 'Parent type resource:', 'text_domain' ), @@ -107,7 +135,7 @@ 'not_found' => __( 'Type of resource Not Found', 'text_domain' ), ); $rewrite = array( - 'slug' => 'resources', + 'slug' => 'resource-type', ); $args = array( 'labels' => $labels, @@ -116,27 +144,73 @@ 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, - 'show_tagcloud' => true, + 'show_tagcloud' => false, 'rewrite' => $rewrite, ); - // register_taxonomy( 'archive_wpplugin_taxonomy_type_resource', array( 'archive_resource' ), $args ); - register_taxonomy( 'archive_resourcetype', array( 'archive_resource' ) , $args ); + register_taxonomy( 'archive_resource_category', array( 'archive_resource' ) , $args ); } // Hook into the 'init' action - add_action( 'init', 'archive_wpplugin_register_taxonomy_resource', 0 ); + add_action( 'init', 'archive_wpplugin_register_resource_category', 0 ); + + // Register Custom Taxonomy Tag for Resources + function archive_wpplugin_register_resource_tag() { + + $labels = array( + 'name' => _x( 'Resources Tags', 'Taxonomy General Name', 'text_domain' ), + 'singular_name' => _x( 'Resource Tag', 'Taxonomy Singular Name', 'text_domain' ), + 'menu_name' => __( 'Resources Tags', 'text_domain' ), + 'all_items' => __( 'All resources tags', 'text_domain' ), + 'parent_item' => __( 'Parent resource tag', 'text_domain' ), + 'parent_item_colon' => __( 'Parent resource tag:', 'text_domain' ), + 'new_item_name' => __( 'New resource tag', 'text_domain' ), + 'add_new_item' => __( 'Add New resource tag', 'text_domain' ), + 'edit_item' => __( 'Edit resource tag', 'text_domain' ), + 'update_item' => __( 'Update resource tag', 'text_domain' ), + 'separate_items_with_commas' => __( 'Separate resource tag with commas', 'text_domain' ), + 'search_items' => __( 'Search resource tags', 'text_domain' ), + 'add_or_remove_items' => __( 'Add or remove resource tag', 'text_domain' ), + 'choose_from_most_used' => __( 'Choose from the most used resource tags', 'text_domain' ), + 'not_found' => __( 'Resource tag Not Found', 'text_domain' ), + ); + $rewrite = array( + 'slug' => 'resource-tag', + // 'with_front' => false, + ); + $args = array( + 'labels' => $labels, + 'hierarchical' => false, + 'public' => true, + 'show_ui' => true, + 'show_admin_column' => true, + 'show_in_nav_menus' => true, + 'show_tagcloud' => true, + 'rewrite' => $rewrite, + ); + register_taxonomy( 'archive_resource_tag', array( 'archive_resource' ) , $args ); + } + + // Hook into the 'init' action + add_action( 'init', 'archive_wpplugin_register_resource_tag', 0 ); // changing the permalink - // http://wordpress.stackexchange.com/questions/108642/permalinks-custom-post-type-custom-taxonomy-post - - function archive_wpplugin_show_permalinks( $post_link, $id = 0 ){ - $post = get_post($id); - if ( is_object( $post ) && $post->post_type == 'archive_resource' ){ - $terms = wp_get_object_terms( $post->ID, 'archive_resourcetype' ); - if( $terms ){ - return str_replace( '%archive_resourcetype%' , $terms[0]->slug , $post_link ); - } - } - return $post_link; - } - add_filter( 'post_type_link', 'archive_wpplugin_show_permalinks', 1, 2 ); + // https://wordpress.stackexchange.com/questions/108642/permalinks-custom-post-type-custom-taxonomy-post + // change in register_post_type the slug 'rewrite' to this + // $rewrite = array( + // 'slug' => 'resources/%archive_resource_category%', + // 'with_front' => true, + // 'hierarchical' => true, + // ); + // uncomment below + // + // function archive_wpplugin_resource_and_category_permalink( $post_link, $id = 0 ){ + // $post = get_post($id); + // if ( is_object( $post ) && $post->post_type == 'archive_resource' ){ + // $terms = wp_get_object_terms( $post->ID, 'archive_resource_category' ); + // if( $terms ){ + // return str_replace( '%archive_resource_category%' , $terms[0]->slug , $post_link ); + // } + // } + // return $post_link; + // } + // add_filter( 'post_type_link', 'archive_wpplugin_resource_and_category_permalink', 1, 2 );