フォーラムへの返信
-
投稿者投稿
-
不完全なレイアウトのサイトと、管理画面にはログインすることができましたが、親テーマ(Ver28.0.2)に更新したところ、再度エラー画面となってしまいました。
わー!いきなりアップデートしてはだめです!前にも書いたように、現行の Snow Monkey は WordPress の 6.7 からをサポートしています。それ以下のバージョンの WordPress では正しく動きません。
喜多さんがどういう方針で対応されたいかによると思いますが、個人的には一旦元の状態に戻し、元のレイアウトで表示されるようにするのが良いと考えていますがどうでしょうか?「不完全なレイアウト」には復元できたということなので、それがなぜ不完全なのかを調査して対応していけば元に戻せると思います。
※ここでいう「復元」は完全に元の状態に戻すことを指しています。WordPress のバージョン、Snow Monkey のバージョン、各種プラグインを元に戻す必要があります(可能ならデータベースも)。
その後、本番でいきなりアップデートすると同じことになってしまうので、前に書いたように、
あと気になったのは、snow-monkey-child-master の中に、特にカスタマイズしていないと思われるファイルが複数入っていたことです。子テーマによるファイルの上書きは「どうしても必要なものだけ」をおこなうのがベターです。そうしないと今回のようなアップデートによる動作不良の発生確率が高くなるためです。上書きする必要のないファイルが大半なのであれば、snow-monkey-child-master を使わずにすむ可能性もあるので、まずは本当に上書きする必要があるファイルを選別するのが良いかなと思いました。
諸々作業をおこなってまた最新版へのアップデートをおこなう際は、また動作不良が発生してしまわないように、テスト環境を用意して、そこでちゃんと動くようにできたら本番にも反映するようにするのが良いです。自分のパソコンの中にテスト環境をつくれるツールも色々あるので、一度見てみてください(もしかしたら本番環境が古いので動かない場合があるかもですが…)。
の対応をするのが良いです。一般的にもテスト環境でを用意して作業することが推奨されています。どうしてもテスト環境を用意するのが不可能・ある程度サイトがダウンしているのを許容できる状況、なのであれば、本番で作業しても良いとは思いますが…。
1点確認したいのですが、最新版のSnow Monkeyのテーマはchildは不要というのが基本となっているのでしょうか?
まず、Snow Monkey 公式としては子テーマは用意していません。WordPress でテンプレートを書き換える場合は一般的には子テーマを使うことになるので子テーマを作っている方のページにリンクはしていたと思うのですが、そもそも、個人的に子テーマが必須なカスタマイズは非常に高度なものだと考えているので、WordPress にそれほど詳しくない場合は、子テーマを使うレベルのカスタマイズはしないほうが良いと考えています。やはり不具合が発生したときに元に戻すのが難しくなるので。
繰り返しになりますが、snow-monkey-child-master の中に不要と思われるファイルが入っているので、本当に上蓋が必要なファイルだけに絞ってみてください。そうしないとテンプレートの上書きを行っているのか、行っている場合は本当にする必要があるのか、を検討するのが難しいと思います。ほとんどが不要という結果であれば、アップデートのための書き換えも最小限ですむと思いますので…。
♥ 0Who liked: No userありがとうございます。ダウンロードできました。
復元元のデータを確認したところ、
snow-monkey
の中にはdebug-template-overwrite.php
が入っていなかったので、これが正として、サーバー上のファイルを置き換えてみるのが良いのかなと思いました。例えば今サーバー上に
wp-content/themes/snow-monkey
があるとしたら、それをwp-content/themes/_snow-monkey
とリネームして、復元元データの中にあるsnow-money
をwp-content/themes/
にアップロードする、という感じです。もしかしたら復元元のデータも完全ではない可能性があるかもしれませんが、現状動いていないのなら試しても良いのかなと…。ダメだったら削除してリネームしたものを元に戻せばよいですし。—
あと気になったのは、
snow-monkey-child-master
の中に、特にカスタマイズしていないと思われるファイルが複数入っていたことです。子テーマによるファイルの上書きは「どうしても必要なものだけ」をおこなうのがベターです。そうしないと今回のようなアップデートによる動作不良の発生確率が高くなるためです。上書きする必要のないファイルが大半なのであれば、snow-monkey-child-master
を使わずにすむ可能性もあるので、まずは本当に上書きする必要があるファイルを選別するのが良いかなと思いました。—
諸々作業をおこなってまた最新版へのアップデートをおこなう際は、また動作不良が発生してしまわないように、テスト環境を用意して、そこでちゃんと動くようにできたら本番にも反映するようにするのが良いです。自分のパソコンの中にテスト環境をつくれるツールも色々あるので、一度見てみてください(もしかしたら本番環境が古いので動かない場合があるかもですが…)。
♥ 0Who liked: No userありがとうございます!
では一旦データを共有いただき、それを拝見してからどうしたほうが良さそうか回答させていただければと思います。オンラインコミュニティ(Discrod)の DM か、お問い合わせフォームでデータを共有いただきたいです。
zip だと重くて送れないと思うので、Dropbox 等のファイル共有サービスで共有いただければと思います。### オンラインコミュニティ
### お問い合わせ
お手数おかけいたしますが、よろしくお願いいたします!
—
WordPress本体 Ver5.3.2 → Ver7.3
現在の WordPress の最新版は 6.7.1 なので、6.3?か6.7?かなと思いますがどうでしょうか?
♥ 0Who liked: No userありがとうございます。
ちょっと状況がわからないので改めて以下を確認させてください。– アップデートした際、アップデートしたものは何でしょうか?(WordPress 本体 / Snow Monkey / 各種プラグイン)
– 復元した際、復元したものは何でしょうか?(WordPress 本体 / Snow Monkey / 各種プラグイン)
– 「復元元のファイルには/debug-template-overwrite.php
が存在しなかった」とのことですが、サーバー上の Snow Monkey を復元元と全く同じものにすることは可能でしょうか?
– 復元に使ったデータを共有していただくことは可能でしょうか?(可能な場合、共有方法は別途)
– Snow Monkey Child を共有していただくことは可能でしょうか?(可能な場合、共有方法は別途)♥ 0Who liked: No user### 追記
Snwow Monkey v7.10.3 には
/xxxxx/wp-content/themes/snow-monkey/vendor/inc2734/wp-view-controller/src/setup/debug-template-overwrite.php
のファイルは無かった気がしておりまして、Snow Monkey 自体も正しく復元できていない可能性がある気もしてきました…。できればその復元に使ったデータを見せていただきたいのですが可能でしょうか…?
♥ 0Who liked: No userエラーログも送ります。
/xxxxx/wp-content/themes/snow-monkey/vendor/inc2734/wp-view-controller/src/setup/debug-template-overwrite.php on line 10エラーの発生箇所はわかりますが、エラーメッセージがないので詳細がわかりません。多分エラーメッセージも一緒に出力されているのではないかなと思うのですが、出力されていないでしょうか?
とりあえず、バージョンアップ前にバックアップを取ってたので、それに戻そうとFTPから復元したのですが、それでも動かない状態です。
同じ状態に復元すれば基本的には動くはずなので、おそらく何か復元できていないものがあるのではないかと想像します。例えば WordPress 本体や各種プラグインもアップデートしたのであれば WordPrss 本体や各種プラグインも元のバージョンに戻す必要があります。
一旦 Snow Money と Snow Monkey Child を FTP でリネーム(例:
/themes/snow-monkey
を/themes/snow-_monkey/
に変更)すればとりあえず管理画面には入れるようになると思うので、その状態で復元するのが良いと思います。♥ 0Who liked: No user今回サブスクに加入しましたが、ダウンロードした最新版のスノーモンキーを使用するにはchildのファイル内の該当箇所をすべて自分で書き換えないと最新版は利用できないということでしょうか?
はい、基本的にはそういうことになっちゃいますね…。お手数おかけすることになり申し訳ありません。
また、今後テーマのアップデートがある度にこのような対応をとらなければいけない可能性があるのでしょうか?
お使いのバージョンが7系ということで、約5年ほど前のバージョンになります。その間、Snow Monkey 独自のアップデートだけではなく、WordPress 自体の API の変更や動作環境の変更などもあり、それらに関するアップデートも行っています。その中でどうしても後方互換性に影響を与える変更を行わないといけない場合もあります。5年分まとめてになるので量は多くなってしまっていると思います。
今は Snow Monkey のほうはガンガンアップデートして機能追加していくということは減っているので、今回一旦動くようにしてしまえば、今後は同じくらい大変な作業を毎回しないといけないということは無いのかなと思います(もちろん前述したように WordPress 本体のアップデートに合わせてどうしようもないことはあり得ます)。
なお、テンプレートの上書きはアップデート時に影響がでる可能性が高いので、Snow Monkey ではテンプレートの上書きをしなくても、フックを使ってテンプレートの挙動を変えたり出力する HTML を変更する機能があります。フックでやったからといって完全に影響をゼロにすることはできませんが、テンプレートを上書きするよりは影響を減らせる可能性が高いので、可能な部分についてはフックで書き換えたり、なるべくテンプレートの上書きをしない形でカスタマイズするのがお勧めです。
♥ 0Who liked: No user例えば、先程のエラーメッセージだと、
/snow-monkey-child-master/app/setup/like-me-box.php
の11行目に書いてあるInc2734\WP_Like_Me_Box\Like_Me_Box
という PHP クラスが存在していない、というエラーが発生しており、読み込めないためにそこで処理が終了してしまっています。Snow Monkey の
/snow-monkey/app/setup/like-me-box.php
を見ていただくと、Inc2734\WP_Like_Me_Box\Like_Me_Box
の代わりにInc2734\WP_Like_Me_Box\Bootstrap
を使うように変わっているのが確認できます。なので、それに合わせて/snow-monkey-child-master/app/setup/like-me-box.php
を書き換える、という感じで1つずつ作業を進めていく形になります(1つ直して再読み込みすると次のエラーがでてくると思います)。Snow Monkey の各 PHP ファイルには先頭に
/** * @package snow-monkey * @author inc2734 * @license GPL-2.0+ * @version 25.4.6 */
のようなコメントが入っています。
@version 25.4.6
の部分がそのファイルが更新されたバージョンです。Snow Monkey Child の中にある、(Snow Monkey の PHP ファイルを上書きしている)各 PHP ファイルを見て、このバージョンの記載がない、あるいは記載はあるけど Snow Monkey の当該ファイルと比べて古いものについては、すべて最新版のファイルに合わせて書き換えが必要になります。♥ 0Who liked: No userお使いになられている Snow Monkey Child というテーマが最新版の Snow Monkey に対応していないように見えます。Snow Monkey Child が必須ではないのであれば、FTP で
/wp-content/themes/snow-monkey-child-master
を(バックアップをとった上で)消して、管理画面からテーマを Snow Monkey に切り替えると表示されるようになると思います。もしカスタマイズをたくさんしているとかで Snow Monkey Child が必須なのであれば、Snow Monkey Child を Snow Monkey の最新版に対応させる作業を地道に行っていくしかないかなと思います…。
♥ 0Who liked: No userコードありがとうございます。こちらの環境で試したところ、正しく動作しました。「先頭固定表示」のオンオフでも更新日が更新されるので、直近で「先頭固定表示」をオンにしたのなら、それが更新日的に先頭に表示されてしまうということはあるのかなと思いました。
♥ 0Who liked: No userこれもCSSが当たらなくなってしまっている影響でしょうか。
.wp-block-woocommerce-checkout
のmargin: 0になっているのをmargin: 0 autoにしたところ中央に戻りそうですが
これはこちらでCSSで制御した方がよろしいでしょうか?なるほどです。まだ細かく調査できていないのですが、それで良さそうな気がします。
♥ 0Who liked: No user -
投稿者投稿