Advertisement
tcbarrett

Editing Custom Post Type's Custom Taxonomy w/ custom Role

Sep 24th, 2011
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.30 KB | None | 0 0
  1. add_action( 'init', 'tcb_create_profession_taxonomy', 0 );
  2. function tcb_create_profession_taxonomy(){
  3.   $labels = array(
  4.     'name'              => _x( 'Professions', 'taxonomy general name' ),
  5.     'singular_name'     => _x( 'Profession', 'taxonomy singular name' ),
  6.     'search_items'      => __( 'Search Professions' ),
  7.     'all_items'         => __( 'All Professions' ),
  8.     'parent_item'       => __( 'Parent Profession' ),
  9.     'parent_item_colon' => __( 'Parent Profession:' ),
  10.     'edit_item'         => __( 'Edit Profession' ),
  11.     'update_item'       => __( 'Update Profession' ),
  12.     'add_new_item'      => __( 'Add New Profession' ),
  13.     'new_item_name'     => __( 'New Profession Name' ),
  14.   );
  15.  
  16.   register_taxonomy( 'profession', array( 'professions' ), array(
  17.     'hierarchical' => false,
  18.     'labels'       => $labels,
  19.     'show_ui'      => true,
  20.     'query_var'    => true,
  21.     'rewrite'      => array( 'slug' => 'profession' ),
  22.     'capabilities' => array(
  23.       'manage_terms' => 'manage_professions',
  24.       'edit_terms'   => 'edit_professions',
  25.       'delete_terms' => 'delete_professions',
  26.       'assign_terms' => 'assign_professions'
  27.     )
  28.   ));
  29. }
  30.  
  31. add_action('init','tcb_create_people_posttype');
  32. function tcb_create_people_posttype() {
  33.   register_post_type( 'people',
  34.     array(
  35.       'labels' => array(
  36.         'name'               => __( 'Peoples' ),
  37.         'singular_name'      => __( 'People' ),
  38.         'add_new'            => __( 'Add New People' ),
  39.         'add_new_item'       => __( 'Add New People' ),
  40.         'edit_item'          => __( 'Edit People' ),
  41.         'new_item'           => __( 'Add New People' ),
  42.         'view_item'          => __( 'View People Profile' ),
  43.         'search_items'       => __( 'Search Peoples' ),
  44.         'not_found'          => __( 'No Peoples found' ),
  45.         'not_found_in_trash' => __( 'No Peoples found in trash' )
  46.       ),
  47.       'public'               => true,
  48.       'supports'             => array( 'title', 'thumbnail', 'editor', 'author' ),
  49.       'capability_type'      => array( 'people', 'peoples' ),
  50.       'menu_position'        => 3,
  51.       'rewrite'              => array( 'slug' => 'people' ),
  52.       'taxonomies'           => array( 'profession' ),
  53.     )
  54.   );
  55.   flush_rewrite_rules( false );
  56. }
  57.  
  58. add_action('admin_init', 'tcb_update_person_role_capabilities', 0);
  59. function tcb_update_person_role_capabilities(){
  60.   if( 'person' == $_GET['remove_role'] ){
  61.     remove_role('person');
  62.     error_log('role removed');
  63.   }
  64.  
  65.   $rolecaps = array(
  66.     'read'                 => true,
  67.     'upload_files'         => true,
  68.   );
  69.   add_role( 'person', 'Person', $rolecaps );
  70.   error_log('role added');
  71.  
  72.   $person =& get_role('person');
  73.  
  74.   // CPT People
  75.   $person->add_cap('edit_peoples');
  76.   $person->add_cap('publish_peoples');
  77.   $person->add_cap('edit_others_peoples');
  78.   $person->add_cap('read_people');
  79.   $person->add_cap('read_private_people');
  80.   $person->add_cap('delete_people');
  81.   $person->add_cap('delete_others_people');
  82.  
  83.   // Levels
  84.   $person->add_cap('level_0');
  85.   $person->add_cap('level_1');
  86.   $person->add_cap('level_2');
  87.  
  88.   // CTax Profession
  89.   $person->add_cap('manage_professions');
  90.   $person->add_cap('edit_professions');
  91.   $person->add_cap('delete_professions');
  92.   $person->add_cap('assign_professions');
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement