Grouping users under parent user

Roles First of all you need to register the 2 roles, look at add_role. When you register the role, you are free to assign any capability you want. Only be careful to add the roles when your theme / plugin is activated and possibly remove them (see remove_role) when it is disabled. Meta Data You … Read more

Prevent author from changing their posts if admin has modified

You can try the following: /** * Post Update Locker For Authors * If an administrator has updated the post, then lock it for author updates. * @see http://wordpress.stackexchange.com/a/168578/26350 */ add_action( ‘pre_post_update’, function( $post_ID, $data ) { // Target only authors: if( ! current_user_can( ‘edit_post’ ) || current_user_can( ‘edit_others_posts’ ) ) return; // Target only … Read more

Help to condense/optimize some working code

Ok I figured it out. Here’s the optimized code: // Show only posts related to current user add_action(‘pre_get_posts’, ‘query_set_only_author’ ); function query_set_only_author( $wp_query ) { global $current_user; if( is_admin() && !current_user_can(‘edit_others_posts’) ) { $wp_query->set( ‘author’, $current_user->ID ); add_filter(‘views_edit-post’, ‘fix_post_counts’); } } // Fix post counts function fix_post_counts($views) { global $current_user, $wp_query; unset($views[‘mine’]); $types = array( … Read more

Defining capabilities for custom post type

You code seems to be correct. Try the following instead. $args = array( ‘labels’ => $labels, ‘public’ => true, ‘publicly_queryable’ => true, ‘show_ui’ => true, ‘query_var’ => true, ‘rewrite’ => true, ‘hierarchical’ => false, ‘menu_position’ => null, ‘supports’ => array(‘title’), ‘capability_type’ => ‘video’ ); Update: You have to do some extra steps before making it … Read more

Allow user to Edit Posts but not Add New?

You will have to do something like this: function hide_buttons() { global $current_screen; if($current_screen->id == ‘edit-post’ && !current_user_can(‘publish_posts’)) { echo ‘<style>.add-new-h2{display: none;}</style>’; } } add_action(‘admin_head’,’hide_buttons’); See: http://erisds.co.uk/wordpress/spotlight-wordpress-admin-menu-remove-add-new-pages-or-posts-link for reference

Show admin bar only for some USERS roles

You can disable the admin bar via function: show_admin_bar(false); So with that in mind, we can hook into after_setup_theme and hide the admin bar for all users except administrator and contributor: function cc_wpse_278096_disable_admin_bar() { if (current_user_can(‘administrator’) || current_user_can(‘contributor’) ) { // user can view admin bar show_admin_bar(true); // this line isn’t essentially needed by default… … Read more