[WordPress] 管理画面のメニューが閉じたままになってしまった時の対処法

WordPress の管理画面で色々と作業をしていると、ある時突然管理メニューバーが閉じたままになってしまうことがあります。
一旦開いてもまた違うページに移動すると閉じてしまいます。そんな状況になってしまった場合の対処法メモです。

    WordPress では、通常の状態では管理メニューは下図のようにアイコンとテキストが表示されます。

    WordPress 管理メニュー(開いた状態)

    いつ頃から導入された機能かは調べていませんが、現時点(バージョン 3.5.2)では、ブラウザの横幅が 900px より狭くなると自動的に管理メニューを閉じます。メニューが閉じると、アイコンのみの表示になります(下図)。

    WordPress 管理メニュー(閉じた状態)

    また、管理メニューの最下部に「メニューを閉じる」という項目があり、これをクリックする事でもメニューの開閉が可能です。

    この機能が、あるときおかしい振る舞いを見せることがあります。
    具体的には、常に「閉じた」状態になってしまう、というものです。ブラウザの横幅が 900px 以上であっても、手動で開いても、違う画面に移動するとまた閉じてしまいます。ログインし直してもだめ、クッキーを削除してもだめ…

    そこで、この現象について調べて見たところ、一応原因っぽいものと対処方法がわかりました。

    まず原因ですが、内部的には、「wp_usermeta」というテーブル内にある「wp_user-settings」という項目に「mfold=f」という値が書き込まれているとこの現象が起こります。「mfold」は多分「menu fold」(メニューの折りたたみ)ということだと思います。そして「f」は「fold」。この怪奇現象が起きない時には、「mfold=o」(多分「open」の「o」)あるいはこの項目が存在しない、という状況になっているようです。

    管理画面にログインすると、この設定が読み出され、cookie に保存されます。 データベースに保存されているので、クッキーを削除してもダメだったんですね。

    これは、多分、メニューをいつも閉じておきたいユーザがログアウトしてもその状態を保存しておけるように、ということで導入されたのだと思いますが、ユーザが手動でメニューを開いた場合はその状態を保存しておくべきところが保存されず、違う画面に移動するとまた閉じてしまう、といことが起こっているようです。どうも実装に癖がある、という多分バグですね。

    解決方法は単純でした。

    メニューを開いた状態でログアウトする。

    こうすると、「開いた状態」の設定を「wp_user-settings」に保存してくれるので、次回ログイン後からはちゃんとメニューが開いていてくれます。


    Pocket
    Bookmark this on Yahoo Bookmark

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>