0

I have a custom user role and I want to display all custom website posts to them, without letting them edit/delete them. Right now the custom post doesn't show up in their dashboard. I know it will show up when I add the edit and delete caps, but I only want them to be able to see their "websites". Ultimately they only get to see the websites that have a custom field that is a relation to the client user. So client1 can only see websites of client1, etc. I have the following code:

// Add the Client user role
function add_client_user_role() {

  $capabilities = array(
        'read'                           => true,
    'read_website'           => true
  );

  add_role( 'client', 'Client' );

    $client = get_role( 'client' );
    $client->add_cap( 'read' );
    $client->add_cap( 'read_website' );

}

add_action( 'init', 'add_client_user_role', 10 );

How can I achieve this?

EDIT: Ok, I found the hook restrict_manage_posts which I can use to show only the posts assigned to them. Now I still need a way to make sure they show up, without letting them edit the posts. So the custom Post should show up in the dashboard without me giving them caps to edit.

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.