對於開放註冊的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 行的用戶名