管理画面のプラグイン一覧から指定した行を省く表示例です。非表示にしても更新・停止の権限は失われず、直接操作やWP-CLIなどを防ぐアクセス制御にはなりません。誤操作対策の権限設計と混同しないでください。
目次
対象と保守担当者を指定する
専用プラグインまたは子テーマfunctions.phpへ追加します。既存PHP内では開始タグを省きます。maintainersに実際の保守担当ユーザーID、hiddenに確認したプラグインの相対パスを設定してください。例示パスのままでは実在プラグインは隠れません。
function waza_hide_plugin_rows($plugins) {
if (!is_admin() || is_network_admin()) return $plugins;
// 保守担当者は一覧を確認できるようにする。実際のユーザーIDへ変更。
$maintainers = array(1);
if (in_array(get_current_user_id(), $maintainers, true)) return $plugins;
$hidden = array('example-plugin/example-plugin.php');
foreach ($hidden as $file) unset($plugins[$file]);
return $plugins;
}
add_filter('all_plugins', 'waza_hide_plugin_rows');
パスと適用範囲
パスはプラグインフォルダー名/メインPHPファイル名です。ファイル内容の編集は不要です。保守担当者には全件を残し、ネットワーク管理画面には適用しません。Code Snippetsなど、このコードを解除するために必要な管理手段まで隠さないでください。
確認と戻し方
担当者・担当者以外で一覧表示を比較します。行を隠しても更新通知や別の管理機能が残ることがあるため、更新権限を制限できたとは判定しません。権限制限が必要なら、ユーザーの役割と運用上必要な権限を別途見直します。
今回の関数とフックを停止すれば一覧は元に戻ります。事前にファイル編集など別の復旧経路を確認してください。ローカルのフィルター検証と実管理画面の操作確認は別です。旧CSS版と旧外部コード集は今回の修正と未同期です。



