0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WP管理画面のサイドメニューが限界を迎えたので、フォルダに放り込めるプラグインを作った話

0
Last updated at Posted at 2026-09-25

この記事はkarasunouta.comからの転載です。


WordPressのサイトを運営していると、ふと気づく瞬間があります。

「えっ!私のサイドメニュー、長すぎ?」

ショックを受ける女性のイラスト(「いらすとや」配布の定番イラスト)
えっ

初期状態では投稿、メディア、固定ページ、外観、プラグイン、設定……などなどの必須項目がコンパクトに並んでいたWordPressの管理メニュー。それがサイトの運用期間が長くなるにつれ、機能追加や外部連携、SEOやセキュリティの強化などに伴って、見渡すのも物憂いような長さに膨れ上がっていくんですよね。

当サイトもまさにその状態に陥っていました。

WordPress管理画面ダッシュボードのスクリーンショット。左サイドメニューが多数の項目で膨れ上がり、ページの高さいっぱいに表示されている。そこから右側のメインペインに向けて矢印が引かれ、大きな赤文字で「これをなんとかしたい」と記されている。
長すぎじゃね?

執筆の合い間なんかに「ちょっとここの設定だけ見直しておこう」「あのプラグインの設定メニューってどこにあるんだっけ?」とかいって探すたび、長大なサイドメニューを目で追って、見当たらなければ「ツール」や「設定」のメニューを展開して探し、それでも見つからない。よくよく見直したらサイドメニューの下の方にぽつんとありました――。

そんな繰り返しのプチストレスが積もり積もって、ぼくの忍耐もそろそろ限界を迎えつつありました。おまけにプラグインはこの先、まだまだ増えていきそうなのです。

よぶんなプラグインを消せば解決?

「ところで今、このサイトってどれくらいプラグインが入ってるんだっけ?」

そう思って管理画面のプラグイン一覧を数えてみたところ、導入時点で有効化されていたプラグインは以下の通りでした。

クリックしてプラグイン一覧を表示
  • APCu Manager
  • Better Search Replace
  • Block AI Crawlers
  • CompressX - AVIF & WebP Converter
  • Contact Form 7
  • Database Manager - WP Adminer
  • Dev Favicon Switcher
  • Duplicate Page
  • Enable Media Replace
  • GenerateBlocks
  • Highlighting Code Block
  • Kadence Blocks — Page Builder Toolkit for Gutenberg Editor
  • KU Sticky Video for YouTube
  • KU Sticky Video for YouTube Pro
  • Lazy Load for Videos
  • Lemon Squeezy — Sell Digital Products, Subscriptions, and Licenses
  • LH Archived Post Status
  • Lightbox with PhotoSwipe
  • LightStart - Maintenance Mode, Coming Soon and Landing Page Builder
  • Mail logging - WP Mail Catcher
  • Permalink Manager Lite
  • Polylang
  • Sassy Social Share
  • Secondary Title
  • Simple CAPTCHA with Cloudflare Turnstile
  • Simple Local Avatars
  • Site Kit by Google
  • User Switching
  • Wordfence Security
  • WPS Hide Login
  • WPvivid Backup Plugin
  • WPダークモード
  • Zoho Mail

33点。ずいぶん多いと思われるかもしれません。しかし1つのサイトを運営していくためには、結局このくらいの数のプラグインを導入せざるを得ないことが多いのも現実です。
初めは「いくつかプラグインを削除してサイドメニューを簡素化できないか?」と考えました。でも、結局あきらめました。

キャッシュや画像変換、セキュリティやバックアップ、メール送信など、日ごろお世話になっていて削除するわけにはいかないプラグインが大部分ですし、1つや2つのプラグインを**「普段はアンインストールしておいて、使うときだけインストールする」運用に変えるなんてそれ自体が面倒**です。1つや2つ減らしたって、サイドメニューもそんなに短くならないし。

となると。
プラグインを減らせない以上、メニューの「見せ方」をどうにかするしかありません。

既存のメニュー整理プラグインに期待。でも…

もちろん、サイドメニューを整理するためのプラグインはWP.org(WordPress公式ディレクトリ)にもそれ以外にもいくつも存在しています。当然ぼくもそれらを調べ、実際にテスト環境で試してみました。しかし、残念ながらどれも採用するには至らなかったんですよね。

以下ちょっとダメ出し気味になるので実名は上げませんが、大まかに分けて以下のような問題がありました(試したことのある方なら「あー、あのプラグインのことね」と察していただけるかもしれません)。

  1. UIが複雑で直感的に扱えない
    高機能を志すのはいいんですが、そのぶん設定画面自体が複雑化していて、メニューを1つ移動させたいだけなのにどこを触ればいいのか迷ってしまう。

  2. 3階層サイドメニュー機能ありきだが「実験的な機能」扱いで信頼性がない
    きちんとメニューを階層化してフォルダ分けしようとすると、「実験的な機能」と銘打たれた3層メニューオプションをonにする必要がある。しかしWordPress標準のサイドメニュー設計はもともと2階層までしか想定されていないので、デザインが崩れたりホバー時の挙動が怪しくなったりと実用には不安が残る(だから「実験的な機能」なんでしょうけど!)。

  3. サイドメニュー全体を独自UIに丸ごと置換する荒業に走っている
    最もアグレッシブなプラグインでは、WordPress標準のメニュー描画機構を破棄して、サイドメニュー全体をごっそり独自描画で差し替えるという荒業が採用されていました。ただ見た目はモダンになるものの、他プラグインがメニューに追加するバッジやスクリプトとの競合、WordPress本体がアップデートされた際の影響範囲が読めないなどやはりリスキーな面が残り、自分で使うのは正直ちょっと嫌、クライアントワークではなおさら…という結論になりました。

どうしてこんな大がかりな処理をしてるんだろう?

既存プラグインのソースや挙動を調べるほどに、ぼくはある疑問を抱くようになりました。

「どうしてどれもこれも、こんなに大がかりな処理をしてるんだろう?」

WordPressの管理画面サイドメニューをすっきりさせたいだけなら、もっと自然で、もっと安全な方法があるはずです。実はぼくの内心、はっきりと「こうすればいい」という明確な腹案がありました。
といっても、WordPressの仕様に詳しいエンジニアなら誰でも思いつくはずの素朴な設計です。それだけに「まさにそれそのもの」という既存プラグインが公式ディレクトリにないはずがない――そう思って探しました。

しかし、なかったんですよね。不思議なことに。今回も、探しても探しても「それ」を見つけ出すことはできませんでした。

「ないなら、自分で作ってみよう」

そうして開発したのが、新作 Karasunouta Admin Menu Folderプラグイン です。

3層メニューなんていらない

原理は至ってシンプルです。そもそも、WordPressのサイドメニュー設計を無視した3層構造のサイドメニューなんて作る必要はありません。

WordPressのプラグインメニューの基本構造は、ルートメニュー(親)にアクセスすれば、その配下のサブメニュー(子)が自動的に展開する仕様になっています。2層の範囲内であれば、表示項目を整理するフックも公式にちゃんと用意されてる。それなら話は簡単です。こうすればいい。

設定前

Karasunouta Admin Menu Folderプラグイン設定ページの初期状態のスクリーンショット。左サイドメニューがページの上から下まで長く伸びている。

設定後

Karasunouta Admin Menu Folderプラグイン設定ページの設定後のスクリーンショット。右側メインペインの表示状態が大きく変化するとともに左サイドメニューのページ下端付近に大きな空白が生じ、メニュー項目数が減少している。またサイドメニュー下端付近に「Menu Folder」というルート項目が加わり、それがマウスオーバーによって展開している。

  • 使用頻度の低いプラグインのルートメニュー群をサイドメニューから消して、
  • サイドメニュー上に新設されるメニューフォルダー内にサブメニュー群として代替表示する。

やってることはこれだけです。

格納されたプラグインの挙動――LightStartプラグインの場合

たとえば、サイトのメンテナンス時に保護モードを提供してくれるLightStartというプラグインがあります。非常に便利でぼくにとって必須のプラグインですが、出番は大規模メンテナンス作業を行うときだけ。年に数回しか使いません。
そんなプラグインのルートメニューが、1年中ずっとサイドメニューの常連として鎮座している必要はありません。真っ先にKarasunouta Admin Menu Folderプラグインのメニューフォルダーに格納することにしました。

WordPress管理画面左下付近のスクリーンショット。Menu Folderルートメニューが展開し、子メニュー群の中に「LightStart」という項目がある。その周囲を囲んで赤い四角が描かれている。
ここにいます

メニューフォルダーに格納されたLightStartプラグインのルートメニューは上の画像のように表示されます。LightStartプラグインの設定ページはここから開くことができるので、主要機能であるメンテモードを使いたいときに困ることはありません。

サブメニューはどうするの?

しかし問題はLightStartのサブメニュー「About Us」。これを私はどうしても開きたいのに、サイドメニューには「Menu Folder > LightStart」はあるけど「Menu Folder > LightStart > About Us」がない!これじゃあアクセスできないじゃないかどうしてくれる!
なんてケースもあるかもしれない。

困る男性のイラスト(「いらすとや」配布の定番イラスト)
3層構造のメニュー、やっぱり必要なんじゃないの?

安心してください。さっきこう書きましたよね。

WordPressのプラグインメニューの基本構造は、ルートメニュー(親)にアクセスすれば、その配下のサブメニュー(子)が自動的に展開する仕様になっています。

実際の挙動を見てみましょう。

「Menu Folder > LightStart」をクリックしてLightStart設定ページが開いた瞬間に、サイドメニューにはLightStartルートメニューが再表示されます。このとき、LightStart設定ページは当然「今まさに表示中」なので、LightStartルートメニューはWordPressによって自動的に展開されます(=子メニュー群が見える状態になる)。

実際にLightStartプラグインの設定ページを表示してみると、サイドメニューが下の画像のようになっていることがわかります。

LightStartプラグイン設定ページのスクリーンショット。左サイドメニューにLightStartルートメニューが展開しており、子メニューとして「About Us」が見えている。その周囲を囲む形で赤い四角が描かれている。
「About Us」サブメニューもちゃんと表示されてます!

ご覧の通り、LightStart設定ページが開くとともに左サイドメニューにはLightStartルートメニューが出現し、展開されます。結果として「LightStart > About Us」メニューにもちゃんとアクセスできるようになるわけです。

サブメニューへのアクセス方法まとめ

つまり、格納したプラグインの子メニューにアクセスしたくなった場合でも

  1. まずMenu Folderに格納したメニュー(例: 「Menu Folder > LightStart」)を開く
  2. 次に、サイドメニューに一時展開された子メニュー(例: 「LightStart > About us」)を開く

という2クリックで確実にアクセスできるわけです。そもそもMenu Folderには「あまり使わないプラグインのルートメニュー」を格納したはずですから、その子メニューともなるとアクセス頻度は非常に低いはず。そこに2クリックで到達できるのであれば、アクセス性に問題はないといっていいのではないでしょうか。

バギーな荒業もいらない

ここまでの処理において、他プラグインで見られたような「サイドメニューをReactで丸ごと置換する」とか「WordPressが非対応の3階層メニューを無理やりねじ込む」といったバギーな大技はひとつも使っていない、という点が重要です。すべてWordPress仕様通り。WordPress公式が用意している標準のフィルターフックだけを使い、サイドメニューの表示状態をただナチュラルに切り替えているだけです。

WordPress本来の仕組みに逆らっていないため、動作は非常に軽快で安定していますし、他プラグインとの競合リスクも最小限で済むという理屈です。

導入効果: Before / After

アプローチはとてもシンプルですが、その効果は鮮やかです。

導入前

WordPress管理画面のダッシュボードのスクリーンショット。左サイドバーのメニューリストが画像の上下幅いっぱいに並んでいる。

導入後

WordPress管理画面のダッシュボードのスクリーンショット。左サイドメニューのメニューリストがページの上端から2/3程度まで並んでいる。ページの下端から上向きに赤い太矢印が伸び、左サイドメニューの圧縮幅を強調している。

……おわかりいただけるだろうか。日ごろ触らない一部のルートメニューが「Menu Folder」という1つのフォルダーにまとまっただけで、管理画面がどれほどすっきりするかということが。
サイドメニューの視界がクリアになることで、「投稿」「固定ページ」「外観」といったヘビロテ組のメニュー群に迷わず一瞬でアクセスできるようになるんですよね。

ちょっと意外だったんですが、導入に伴って「たまにしか使わないメニュー」の方を探すのも速くなったのはうれしい副産物でした。
普段使わない = たぶんMenu Folderの中、という推測が働くようになって、真っ先にMenu Folder内を探すようになったのが原因だと思います。すると大抵、ちゃんとそこにあってすぐ見つかる。本当です。少なくともぼくはそうなったので試してみてほしい。

結果として頻繁に使うメニューも、滅多に使わないメニューも、サイトに存在するすべてのメニューへのアクセス性が格段に改善するというメリットが得られてしまったわけです。

地味に手放せなくなる「プチ設定」

当サイトの管理画面の使い勝手はこうして劇的に改善したのですが、実際に自分で使い込んでいくうちにもう1つ欲しくなって追加したプチ設定があります。それが**「ツールバーに設定ページへのリンクを表示」**オプションです。

Karasunouta Admin Menu Folderプラグイン設定ページのスクリーンショット。画面右下寄りにある「ツールバーに設定ページへのリンクを表示」チェックボックスがonになっており、そこから管理バーに表示された「Admin Menu Folder」メニューに向けて矢印が伸びている。

このチェックボックスをonにしておくと、管理画面上部のツールバー(管理バー)に「Admin Menu Folder」への直通リンクが表示されるようになります。ただそれだけのオプション設定ですが、新しいプラグインを追加して「またちょっとサイドメニューが散らかってきたな」と感じたときや、「あのメニュー、メニューフォルダーに入れたんだっけ?それともまだ?」と確認したくなったとき、管理バーから1クリックで設定ページに飛べるのは想像以上に快適です。

おわりに

まだリリースしたばかりのプラグインですが、ぼく自身は本作を今後のWordPressサイト制作におけるマストアイテムになるべきプラグインだと勝手に思い込んでいます。実際に本サイトはもちろんのこと、クライアントワークを含めて自分が手掛けるすべてのWordPressサイトに常にインストールして愛用しています。今から以前のあのごちゃごちゃしたサイドメニュー環境に戻ることはちょっと考えられないですね。

特に

  • プラグインが増えすぎてサイドメニューがスクロール地獄になっている方
  • クライアントに納品する管理画面をすっきり整えたい方

は、ぜひ一度使ってみてください。日々のサイト管理が驚くほど快適になるはずです!

プラグイン公式ページ(WordPress.org)
Karasunouta Admin Menu Folder – WordPress プラグイン

(気に入ってくださった方はぜひ5つ星レビューを書いていただけると励みになります)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?