當(dāng)你在 WordPress 管理后臺(tái)界面時(shí),你會(huì)遇到一些“管理通知(Admin Notices)”,讓你知道錯(cuò)誤、更新設(shè)置、請(qǐng)求操作等等。

這些通知一般是WordPress內(nèi)核、主題和插件添加的,倡萌之前分享過(guò)《如何為 WordPress 主題和插件添加管理通知(Admin Notices)》,如果你是開(kāi)發(fā)者,可以看一下。今天我們要分享的內(nèi)容是:如何對(duì)WordPress特定用戶(hù)角色隱藏后臺(tái)管理通知。
為什么要對(duì)特定角色隱藏呢?舉個(gè)最簡(jiǎn)單但是很常用的例子:你網(wǎng)站后臺(tái)有一些非管理員的用戶(hù)可以訪問(wèn),但是很多后臺(tái)的通知信息對(duì)他們來(lái)說(shuō)都是多余的。這時(shí)候你就可以將這些信息對(duì)他們進(jìn)行屏蔽。
實(shí)現(xiàn)的方法很簡(jiǎn)單,將下面的代碼添加到主題的 functions.php 文件即可:
/**
* 對(duì)非管理員角色隱藏后臺(tái)通知
* http://www.ydqwiac.cn/hide-admin-notices-for-a-specific-role-in-wordpress.html
*/
function wpkj_hide_notices(){
if (!current_user_can('manage_options')) { //如果你要定義其他角色,需要修改這行的條件
remove_all_actions( 'admin_notices' );
}
}
add_action( 'admin_head', 'wpkj_hide_notices', 10 );
現(xiàn)在我們來(lái)看下邏輯:
- 先創(chuàng)建了一個(gè)名為
wpkj_hide_notices的函數(shù),然后掛載到admin_head這個(gè)鉤子,使函數(shù)生效。 - 在函數(shù)內(nèi)部,我們使用了一個(gè)判斷條件
current_user_can('manage_options'),意思是如果當(dāng)前用戶(hù)可以manage_options,那就是管理員角色,然后我們?cè)谇懊嫣砑恿艘粋€(gè)感嘆號(hào)!,就使條件反過(guò)來(lái)了,如果當(dāng)前用戶(hù)不可以manage_options,那就是非管理員角色了。 - 判斷了如果當(dāng)前用戶(hù)不是管理員角色,就執(zhí)行
remove_all_actions( 'admin_notices' ),也就是用這個(gè)函數(shù)移除了所有后臺(tái)通知。
這里面涉及到的知識(shí)點(diǎn):
admin_head鉤子current_user_can()函數(shù) 及 用戶(hù)角色能力admin_notices鉤子 和remove_all_actions()函數(shù)




