2017-05-17 11 views
0

저는 워드 프레스에서 커스텀 포스트 타입을 만들었고 관리자로서 이것으로 무엇이든 할 수 있습니다. 하지만이 사용자 정의 게시물 유형의 항목 만 추가, 편집 및 제거 할 수있는 역할 "클라이언트"를 만들고 싶습니다. 따라서 일반 게시물을 게시하거나 편집하거나 삭제할 수는 없습니다.Wordpress 커스텀 포스트 타입 롤

이 내 사용자 정의 포스트 유형의 내 인수

$args = array(
    'labels' => $labels, 
    'public' => true, 
    'has_archive' => true, 
    'publicly_queryable' => true, 
    'query_var' => true, 
    'rewrite' => true, 
    'capability_type' => 'post', 
    'hierarchical' => false, 
    'supports' => array(
     'title', 
     'thumbnail' 
    ), 
    'capabilities' => array(
     'edit_post' => 'edit_portfolio', 
     'edit_posts' => 'edit_portfolios', 
     'edit_others_posts' => 'edit_others_portfolios', 
     'publish_posts' => 'publish_portfolios', 
     'read_post' => 'read_portfolios', 
     'read_private_posts' => 'read_private_portfolios', 
     'delete_post' => 'delete_portfolio', 
    ), 
    'map_meta_cap' => true, 
    'menu_icon' => 'dashicons-screenoptions', 
    'menu_position' => 5, 
    'show_ui' => true, 
    'exclude_from_search' => false 
); 

이러한 내가

add_role("client", "Client", array(
    'read' => true, // allows this capability, dashboard 
    'upload_files'=>true, //allows user to upload files 
    'edit_posts' => false, // denies user to edit their own posts 
    'edit_pages' => false, // denies user to edit pages 
    'edit_others_posts' => false, // denies user to edit others posts not just their own 
    'create_posts' => false, // denies user to create new posts 
    'manage_categories' => false, // denies user to manage post categories 
    'publish_posts' => false, // denies the user to publish 
    'edit_themes' => false, // false denies this capability. User can’t edit your theme 
    'install_plugins' => false, // User cant add new plugins 
    'update_plugin' => false, // User can’t update any plugins 
    'update_core' => false, // user cant perform core updates 
    'edit_portfolios' => true, // allows editing of the user’s own portfolio 
    'edit_others_portfolios' => true, // allows the user to edit everyone else’s portfolio 
    'delete_portfolios' => true, // allows to delete portfolio written by that user 
    'delete_others_portfolios' => true, // allows to delete portfolio written by other users 
    'publish_portfolios' => true // allows the user to publish portfolio, otherwise posts stays in draft mode 
)); 

을 만든 역할을한다

효과는 지금은 대시 보드에서 게시물을 볼 수 있지만 수 있다는 것입니다 수 있습니다 변경하거나 클릭하지 마시고 삭제할 수 없으며 메시지를 게시 할 때 오류 화면에 나타나서이를 보지 말아야한다고 말합니다.

미리 감사

답변

0

나는이 문제가있는 사람들에게도 답을 찾았습니다. 당신은이 기능을 배치하고 빠른 답변에 대한 사실

'delete_posts'=>'delete_portfolios', 
'delete_others_posts'=>'delete_others_portfolios', 
'delete_published_posts'=>'delete_published_portfolios', 
'delete_private_posts'=>'delete_private_portfolios' 
0

내가 프로그래밍 이런 짓을 적이 있지만,이 플러그인을 사용하여 마음을하지 않는 경우,이 https://wordpress.org/plugins/user-roles-and-capabilities/ 여러 사이트에 하나의 빠르고 쉬운을 사용했다.

일부 사람들은 플러그인에 대한 혐오감을 느끼지만 해당 문제는 없었습니다.

+0

덕분에 그들을 설정해야합니다. 플러그인으로 볼 때 올바른 권한이 있다고 생각합니다. 그래서 내 코드에서 뭔가 더 필요하다고 생각합니다. – Arne

관련 문제