2014-01-07 25 views
0

WordPress的默認行爲意味着貢獻者無法發佈新帖子。他們被保存爲草稿並等待批准。但是,當撰稿人編輯現有帖子時,他們可以在不需要批准的情況下發布其更改。貢獻者帖子編輯設置爲待定

我想停止發佈所有撰稿人發佈的修改內容,而將其設置爲「待處理」。

我曾嘗試沒有成功(的functions.php)以下

$role = get_role('contributor'); 

if (! empty($role)) 
{ 
    $role->remove_cap('publish_post'); 
} 

回答

0

根據http://codex.wordpress.org/Roles_and_Capabilities一個貢獻者不應該有編輯出版崗位的能力。

也許你需要刪除像這樣的能力:

$role = get_role('contributor'); 
$role->remove_cap('edit_published_posts'); 
+0

默認情況下,貢獻者可以在他們由其他用戶發佈後編輯自己的帖子。以上沒有達到我要找的東西。 – Sam

+0

默認情況下,將更具體的'edit_published_posts'分配給貢獻者。刪除這將不允許撰稿人完全編輯他們自己的帖子。我希望他們編輯自己的帖子,但狀態必須設置爲「掛起」。 – Sam

+0

我不相信通過編輯角色可以輕鬆實現 – user2019515

0

我不知道這是否是實現這一目標的最佳途徑,但通過我的add_filter可以修改一次職位的職位狀態已提交。

在functions.php的

if (current_user_can('contributor')) 
{ 
    //function to set pending status 
    function dont_publish($data , $postarr) { 
     if (in_category('mycategory')) { 
     $data['post_status'] = 'pending'; 
     } 
     return $data; 
    } 
    //apply the pending status 
    add_filter('wp_insert_post_data' , 'dont_publish' , '99', 2); 
} 

這也可以讓你也只適用於設置的類別過濾器以及貢獻者的角色。