Smart Custom Fields のフィールド入力画面で色々弄っていたら、誤ってメタボックス(入力パネル)を消してしまったので対処しました……。
経緯
Smart Custom Fields のフィールド入力画面を操作で色々弄っていました。
普通にメタボックス(上図の赤枠内の部分。名称が分からないので、ここではそう呼ぶことにします)を弄って項目を増やしたり減らしたり、としていたのですが……。
入力フィールド全体を畳もうとして「▲」をクリックするつもりが、間違えてボックスの表示順をソートする「∧」をクリックしてしまいました。
すると、なんということでしょう……メタボックスがごっそり丸ごと消えてしまいました……!
調査
普通に困るので慌てて元に戻そうとするのですが、項目が見付かりません。
- 表示オプション: 該当項目なし
- F12(開発者ツール)で要素を探す: 見付からず (高さ1pxの空
div
タグしかない) - いったんログアウトしてログインしなおす: 変化なし
- ログアウトして Cookie を削除してログインしなおす: 変化なし
- 別の管理者ユーザを作成してそちらでログインしてみる: 正常に表示される
上述の事項を試した結果、ログイン・ログアウトの試行や Cookie の削除で改善されなかったことから、ソートされた内容はクライアント(ブラウザ)側ではなく WordPress の DB 側に保存されるらしいという挙動が分かりました。
また、別ユーザでは問題なかったことから、グローバルな値ではなくユーザごとの値で制御されているらしきことが分かりました。
対処
そこで今回の環境では phpMyAdmin があったのでこれで wp_usermeta
テーブルを覗いてみます。
user_id | meta_key | meta_value |
---|---|---|
1 | meta-box-order_smart-custom-fields | a:3:{s:4:"side";s:196:"pageparentdiv,submitdiv,smart-cf-meta-box-condition-post,smart-cf-meta-box-condition-profile,smart-cf-meta-box-condition-taxonomy,smart-cf-meta-box-condition-options-page,smart-cf-meta-box,slugdiv";s:6:"normal";s:0:"";s:8:"advanced";s:0:"";} |
すると、 user_id
が 1
(初期管理者)のものには存在するが 2
(上述で作成した代替管理者)には存在しないレコードを発見。
キーが meta-box-order_smart-custom-fields
となっているレコードです。
試しに先程作成した代替管理者でも冒頭と同じ操作をしてメタボックスを吹き飛ばすと、 user_id
が 2
で同じようなレコードが追加されました。
そこで、このレコードを削除。……代替管理者で元に戻りました。どうやらこれのようです。
続いて、当初の初期管理者の方のレコードも削除します。
画面をリロードすると、管理者の方も無事メタボックスが戻ってきたことが確認できました。
……一時はどうなるかと思いました。