在WordPress外掛程式管理界面隱藏已啟用的外掛程式

對於開放註冊的WordPress站點,如果你不希望其他用戶在外掛管理頁面查看和禁用站點必要的外掛,除瞭使用 WordPress用戶角色編輯外掛:User Role Editor 來分配用戶權限以外,你還可以將隱藏已啟用的外掛(外掛依舊正常運行,隻是在外掛管理界面看不到罷瞭),將下面的代碼添加到主題的 functions.php 文件即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
add_filter( 'all_plugins', 'hide_plugins');
function hide_plugins($plugins)
{
	// 隱藏 你好,多莉 外掛
	if(is_plugin_active('hello.php')) {
		unset( $plugins['hello.php'] );
	}
	// 隱藏 post series外掛
	if(is_plugin_active('simple-post-series/series.php')) {
		unset( $plugins['simple-post-series/series.php'] );
	}
	return $plugins;
}

add_filter( ‘all_plugins’, ‘hide_plugins’);
function hide_plugins($plugins)
{
// 隱藏 你好,多莉 外掛
if(is_plugin_active(‘hello.php’)) {
unset( $plugins[‘hello.php’] );
}
// 隱藏 post series外掛
if(is_plugin_active(‘simple-post-series/series.php’)) {
unset( $plugins[‘simple-post-series/series.php’] );
}
return $plugins;
}

這個例子中,我們隱藏的是 你好,多莉 和 Simple Post Series 這兩個外掛, is_plugin_active() 和 unset() 裡面填寫的是外掛的主文件目錄,請根據自己的需求進行修改即可。

以上例子是對任何用戶(包括網站管理員)都隱藏瞭已啟用的外掛,如果你需要排除某個用戶,可以參考下面的另一種寫法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function filter_visible_plugins($plugins) {
    //添加外掛的相對於 /wp-content/plugins/ 的路徑
    $pluginsToHide = array(
        'akismet/akismet.php',
        'hidden-plugin/hidden-plugin.php',
        'another-plugin/filename.php',
    );
 
    //在這個例子中,我們對所有用戶隱藏外掛,除瞭用戶 smith 
    $currentUser = wp_get_current_user();
    $shouldHide = $currentUser->get('user_login') != 'smith';
 
    if ( $shouldHide ) {
        foreach($pluginsToHide as $pluginFile) {
            unset($plugins[$pluginFile]);
        }
    }
 
    return $plugins;
}
add_filter('all_plugins', 'filter_visible_plugins');

function filter_visible_plugins($plugins) {
//添加外掛的相對於 /wp-content/plugins/ 的路徑
$pluginsToHide = array(
‘akismet/akismet.php’,
‘hidden-plugin/hidden-plugin.php’,
‘another-plugin/filename.php’,
);
//在這個例子中,我們對所有用戶隱藏外掛,除瞭用戶 smith
$currentUser = wp_get_current_user();
$shouldHide = $currentUser->get(‘user_login’) != ‘smith’;
if ( $shouldHide ) {
foreach($pluginsToHide as $pluginFile) {
unset($plugins[$pluginFile]);
}
}
return $plugins;
}
add_filter(‘all_plugins’, ‘filter_visible_plugins’);

請根據自己的需要,修改第 3 行下面的外掛主文件目錄,以及 11 行的用戶名

發佈留言