前言:直接將用戶權限提升至「編輯」權限也可實現,下面我們要說的是不修改用戶角色,在訂閱者的角色上提升用戶權限。
WordPress為了整個系統的安全性,默認訂閱者是不能上傳圖片的,而我們在制作一些主題的時候需要用到用戶投稿功能,這個時候我們可以通過下面的代碼讓訂閱者也可以上傳圖片。
function dahuzi_add_user_rights() {
$role = 'subscriber';
$role = get_role($role);
$role->add_cap('upload_files');
}
add_action( 'admin_init', 'dahuzi_add_user_rights');
將上面的代碼添加到當前使用WordPress主題的functions.php文件后,在投稿頁面也顯示出來了添加媒體的按鈕,但是就是點擊添加媒體上傳圖片后提示:抱歉,您不能添加附件到此文章。(如下圖所示)
這個問題其實也困擾我很久了,今天抽空研究了一下,還是權限不夠的問題,需要完整的實現訂閱者用戶上傳圖片,還需要添加「編輯已發布文章」「編輯其他文章」「刪除文章」這些權限。
這里直接給出完整代碼,將下面的代碼放至當前使用WordPress主題的functions.php中。
//增加訂閱者權限,使其可以在投稿的時候上傳圖片,刪除圖片
function dahuzi_add_user_rights() {
$role = 'subscriber';
$role = get_role($role);
$role->add_cap('upload_files');
$role->add_cap('edit_published_posts');
$role->add_cap('delete_posts');
}
add_action( 'admin_init', 'dahuzi_add_user_rights');
需要注意的是,這些權限是直接寫進數據庫的,開啟這些權限后,如需重新禁用這些權限時,直接刪除這段代碼是不行的。
如需禁用該權限,需要將以上代碼中的add_cap
替換成remove_cap
比如:
$role->add_cap('upload_files');
替換成:
$role->remove_cap('upload_files');
完美解決,教程結束...
新主題官方微信公眾號
掃碼關注新主題(XinTheme)官方公眾號,本站動態早知道。
發布本站最新動態(新主題發布、主題更新)和WordPress相關技術文章。