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