Smart Custom Fields のフィールド入力画面でメタボックス(入力パネル)を消してしまった場合の対処法

Smart Custom Fields のフィールド入力画面で色々弄っていたら、誤ってメタボックス(入力パネル)を消してしまったので対処しました……。

経緯

Smart Custom Fields のフィールド入力画面を操作で色々弄っていました。

Smart Custom Fields の入力画面
Smart Custom Fields の入力画面

普通にメタボックス(上図の赤枠内の部分。名称が分からないので、ここではそう呼ぶことにします)を弄って項目を増やしたり減らしたり、としていたのですが……。

Smart Custom Fields の入力画面のヘッダ
Smart Custom Fields の入力画面のヘッダ

入力フィールド全体を畳もうとして「▲」をクリックするつもりが、間違えてボックスの表示順をソートする「∧」をクリックしてしまいました。

Smart Custom Fields の入力画面が消えた
Smart Custom Fields の入力画面が消えた

すると、なんということでしょう……メタボックスがごっそり丸ごと消えてしまいました……!

調査

普通に困るので慌てて元に戻そうとするのですが、項目が見付かりません。

  • 表示オプション: 該当項目なし
  • F12(開発者ツール)で要素を探す: 見付からず (高さ1pxの空divタグしかない)
  • いったんログアウトしてログインしなおす: 変化なし
  • ログアウトして Cookie を削除してログインしなおす: 変化なし
  • 別の管理者ユーザを作成してそちらでログインしてみる: 正常に表示される

上述の事項を試した結果、ログイン・ログアウトの試行や Cookie の削除で改善されなかったことから、ソートされた内容はクライアント(ブラウザ)側ではなく WordPress の DB 側に保存されるらしいという挙動が分かりました。

また、別ユーザでは問題なかったことから、グローバルな値ではなくユーザごとの値で制御されているらしきことが分かりました。

対処

そこで今回の環境では phpMyAdmin があったのでこれで wp_usermeta テーブルを覗いてみます。

wp_usermeta の中の怪しそうなレコード
wp_usermeta の中の怪しそうなレコード
user_idmeta_keymeta_value
1meta-box-order_smart-custom-fieldsa: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_id1 (初期管理者)のものには存在するが 2 (上述で作成した代替管理者)には存在しないレコードを発見。

キーが meta-box-order_smart-custom-fields となっているレコードです。

試しに先程作成した代替管理者でも冒頭と同じ操作をしてメタボックスを吹き飛ばすと、 user_id2 で同じようなレコードが追加されました。

そこで、このレコードを削除。……代替管理者で元に戻りました。どうやらこれのようです。

wp_usermeta の中の怪しそうなレコードを削除
wp_usermeta の中の怪しそうなレコードを削除

続いて、当初の初期管理者の方のレコードも削除します。

Smart Custom Fields の入力画面にメタボックスが戻ってきた
Smart Custom Fields の入力画面にメタボックスが戻ってきた

画面をリロードすると、管理者の方も無事メタボックスが戻ってきたことが確認できました。

……一時はどうなるかと思いました。

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。