WordPressテーマの初期化方法

概要

己の為に金は鳴る – 株式投資の投資日記」のサイトにSTINGER8-ChildのWordPressテーマを使っていた。サイトのドメインをinvest.senooken.jpからmoney.senooken.jpに変更した際に,ヘッダー画像がうまく反映されず,困っていた。

今回,WordPressテーマを初期化することで,STINGER8 (STINGER8-Child) のヘッダー画像を再びうまく設定できるようになったので,記録を残す。

WordPressテーマを初期化したいのですが戻りません – オレンジの国」を参考にした。WordPress 5.5.3-jaで確認した。

方法

以下の手順でWordPressのテーマをリセットできる。

  1. 子テーマ/親テーマを削除
  2. DBの_optionsテーブルのtheme_mods_<theme name>を削除
  3. 親テーマ/子テーマをインストール

1と3のテーマの再インストールはわかりやすいだろう。テーマで直接修正したfunctions.phpstyle.cssを削除してクリーンインストールする。wp-adminの [テーマ] 画面から簡単に実行できる。

重要なのが2のDBのwp_optionsテーブルのtheme_mods_<theme name>のフィールドだ。こちらのフィールドはテーマに対する修正が記録されている。例えば,テーマのヘッダー画像などの修正情報が入っている。

こちらのDB値はテーマを削除しても残っている。今回は,こちらのDB値が残っていたのが不具合の原因だった。

例えば,以下のような値が残っていた。

theme_mods_stinger8-child
A:4:{s:18:"custom_css_post_id";i:76;s:18:"nav_menu_locations";a:0:{}s:12:"header_image";s:51:"https://money.senooken.jp/asset/sites/7/header.png";s:17:"header_image_data";O:8:"stdClass":5:{s:13:"attachment_id";i:148;s:3:"url";s:51:"https://money.senooken.jp/asset/sites/7/header.png";s:13:"thumbnail_url";s:51:"https://money.senooken.jp/asset/sites/7/header.png";s:6:"height";i:300;s:5:"width";i:1060;}}

なお,今回はマルチサイトだったので,実際にはsenooken_7_optionsテーブルのoption_name=theme_mods_stinger8-childの値を確認した。

そこで,このフィールドを削除する。phpmyadminであれば [Delete] ボタンを選べばよい。

これでヘッダー画像をきちんと設定できるようになった。

結論

WordPressテーマの初期化方法・リセット方法を整理した。

DBに値が残っているというのが盲点だった。途中でWP Resetプラグインを試そうともしたのだが,マルチサイトに対応していなかった。結果として,余計なプラグインに頼らずに解決できてよかった。

WordPressのテーマで,途中で何かおかしくなったら,今回の手順でまずは初期化して直るかどうかを試したい。

コメントを残す

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