フォーラムへの返信
-
投稿者投稿
-
前提として、Snow Monkey ChildはSnow Monkeyのテーマには不要なもので、
「Snow Monkey を動作させるため」には必須ではありません。
他のテーマの場合、テンプレートを上書きする場合には子テーマが必須です。
Snow Monkey は子テーマがなくてもテンプレートの上書きや出力される HTML を書き換えることができる機能があるので子テーマは必須ではありません。必須ではない、という意味で言えば不要ですが、にテンプレートの上書きをする場合は「一般的には」子テーマでおこなうものなので、Snow Monkey 独自の方法を使わずに、自分がわかりやすい方法でやりたいということで子テーマを使われる方はいらっしゃると思います。そういう意味では、子テーマも使えるようにしておく、という意味では不要とは言い切れないです。
Snow Monkey公式が作ったものではないので関与しません(ただし善意で相談には乗りますよ)ということなのでしょうか?
基本的にはそのようなスタンスになります。
細かく言えば、子テーマを使わずに Snow Monkey をカスタマイズするための My Snow Monkey プラグインは僕がつくって公開しているものですが、そこにユーザーさんが独自に追加したコードについて僕が責任を負うことはありません(制限なくなんでも自由に書けるから、そもそも負うことができません)。だから「Snow Monkey 公式が作ったものではない」から、というよりは、「ユーザーさんが独自に追加したファイルやコードだから」というのがより正確な表現になります。
購入者側でカスタマイズしたものを除く部分でも都度子テーマ内の記述の変更が必要なのであれば、
前述したように、ユーザーさんが独自に追加したファイルやコードはカスタマイズになります。僕にはなぜそのファイルを追加したのか、そのコードを書いたのかはわからないので…。また、「都度」変更の必要はありません。変更しなければならいときだけ変更することになります。
繰り返しになりますが、「Snow Monkey Child から不要(= 上書きする必要がない)なファイルを削除する」のが先決だと思います。もし必要なファイルが少しだけなら変更作業も減らせることになります。
どこをカスタマイズ(Snow Monkey からファイルをコピーしてきて書き換え)されたかはご自身がわかっていると思うので、前述の手順で作業をおこない(手順はあくまで「僕ならこうする」というものなのです)、Snow Monkey Child から不要なファイルを削除してみてください(もとに戻せるように必ずバックアップは残しておいたほうが良いです)。♥ 0いいねをした人: 居ません認識に違いがでないように細かく書きます。
### 本番環境の復元
バックアップデータを使い、エラーが発生する前の状態に戻す(WordPress 本体、各プラグイン、Snow Monkey、Snow Monkey Child)### テスト環境の構築と、Snow Monkey Child の最新版への対応
- ローカルにテスト環境を用意し、WordPress の最新版をインストールする(ローカル環境ではなくてサーバー上に用意しても可)
- 使用するプラグインの最新版をインストール・有効化する
- Snow Monkey の最新版をインストールする
- Snow Monkey Child から不要(= 上書きする必要がない)なファイルを削除する(Snow Monkey からコピーしてきたけど何も変更していないファイルは全て不要です)
- Snow Monkey Child をインストール・有効化する
- 恐らくここでエラーがでて表示されなくなる(このトピックを立てたときと同じ現象)
- でてきたエラーメッセージに応じた変更を加え、エラーを解消する。
- (7) をエラーが無くなるまで繰り返す
※本当はここで本番環境のデータベースをテスト環境にインポートして、ページの内容についても崩れが発生しないか確認したほうが良いですが、難しいのであれば、僕ならページの内容については本番で直していきます。
### 本番環境への反映
- 本番環境のテーマを Snow Monkey 以外のものに切り替える(Twenty◯◯が良いと思います)
- WordPress と各プラグインを最新版にアップデート
- Snow Monkey 最新版をインストール
- テスト環境で修正した Snow Monkey Child をインストール・有効化
※もしここでまたエラーメッセージがでるならエラーが出なくなるまで修正をおこなう - エラーが無くなったら、各ページの内容を確認し、レイアウト崩れが発生していないか確認
- レイアウトが崩れている部分があったら、そのページの編集画面を開く(ブロックを使ってページを作成している場合、ブロックの内容が古くなっている場合はページの編集画面を開くことで、そのページ上のブロックが最新のブロックに置き換わります)
- ページの編集画面を開いてエラーが発生するようなら修正をおこなう
- もし CSS を独自に追加している場合、WordPress 本体や Snow Monkey のアップデートで CSS が効かなくなっている場合があるので、必要に応じてその修正もおこなう
また、今までスノーモンキーの子テーマを使用していた人が最新版のスノーモンキーテーマを使用するためには、自分でスノーモンキー子テーマの記述を最新版に対応するように記述しなおす必要があるということで認識は合っていますか?
カスタマイザーやブロックの設定パネルで設定していたものが正しく動かなくなるのはこちらで修正してアップデートを日々おこなっていますが、各ユーザーごとのカスタマイズは何をどうカスタマイズするかはこちらで完全に把握することはできないため、基本的にはご自身で変更していただく必要があります。車や PC を購入してそれを自分でカスタムした場合、保証が効かなくなったり修理を断られたりすることがあると思います。自分でカスタマイズをおこなうというのはそういうことだと思います。
もちろんサポートはおこなっているので、状況を教えていただければできる範囲で調査してお答えしています。
そうであれば、親テーマのアップデートに伴い、子テーマで修正が必要な個所をすべて(購入者側でカスタマイズした部分を除く)教えていただくことは可能でしょうか?
「子テーマを作成する」ということ自体がカスタマイズになる(こちらで用意したファイルではない)ので、こちらで全てを調査・把握して修正作業をおこなうということは行っておりません。もちろん、前述したようにサポートはおこなっているので、状況を教えていただければできる範囲で調査してお答えしています。
購入者側でテスト環境を用意して確認していかなければならないものなのでしょうか?
「していかなければならない」と強制するものではありませんが、カスタマイズをおこなう場合はテスト環境を用意したほうが良いというのは一般的な認識だと思うので、僕もテスト環境を用意することを推奨しています。
—
Snow Monkey に精通している方を「Snow Monkey エキスパート」としてサイトに掲載しているので、どうしても難しい場合はエキスパートの方に相談するのも良いと思います。これまでもサポートフォーラムで Snow Monkey エキスパートの制度を紹介し、相談された方が何名かいらっしゃいます。
♥ 0いいねをした人: 居ません不完全なレイアウトのサイトと、管理画面にはログインすることができましたが、親テーマ(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 の中に不要と思われるファイルが入っているので、本当に上蓋が必要なファイルだけに絞ってみてください。そうしないとテンプレートの上書きを行っているのか、行っている場合は本当にする必要があるのか、を検討するのが難しいと思います。ほとんどが不要という結果であれば、アップデートのための書き換えも最小限ですむと思いますので…。
♥ 0いいねをした人: 居ませんありがとうございます。ダウンロードできました。
復元元のデータを確認したところ、
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
を使わずにすむ可能性もあるので、まずは本当に上書きする必要があるファイルを選別するのが良いかなと思いました。—
諸々作業をおこなってまた最新版へのアップデートをおこなう際は、また動作不良が発生してしまわないように、テスト環境を用意して、そこでちゃんと動くようにできたら本番にも反映するようにするのが良いです。自分のパソコンの中にテスト環境をつくれるツールも色々あるので、一度見てみてください(もしかしたら本番環境が古いので動かない場合があるかもですが…)。
♥ 0いいねをした人: 居ませんありがとうございます!
では一旦データを共有いただき、それを拝見してからどうしたほうが良さそうか回答させていただければと思います。オンラインコミュニティ(Discrod)の DM か、お問い合わせフォームでデータを共有いただきたいです。
zip だと重くて送れないと思うので、Dropbox 等のファイル共有サービスで共有いただければと思います。### オンラインコミュニティ
### お問い合わせ
お手数おかけいたしますが、よろしくお願いいたします!
—
WordPress本体 Ver5.3.2 → Ver7.3
現在の WordPress の最新版は 6.7.1 なので、6.3?か6.7?かなと思いますがどうでしょうか?
♥ 0いいねをした人: 居ませんありがとうございます。
ちょっと状況がわからないので改めて以下を確認させてください。– アップデートした際、アップデートしたものは何でしょうか?(WordPress 本体 / Snow Monkey / 各種プラグイン)
– 復元した際、復元したものは何でしょうか?(WordPress 本体 / Snow Monkey / 各種プラグイン)
– 「復元元のファイルには/debug-template-overwrite.php
が存在しなかった」とのことですが、サーバー上の Snow Monkey を復元元と全く同じものにすることは可能でしょうか?
– 復元に使ったデータを共有していただくことは可能でしょうか?(可能な場合、共有方法は別途)
– Snow Monkey Child を共有していただくことは可能でしょうか?(可能な場合、共有方法は別途)♥ 0いいねをした人: 居ません### 追記
Snwow Monkey v7.10.3 には
/xxxxx/wp-content/themes/snow-monkey/vendor/inc2734/wp-view-controller/src/setup/debug-template-overwrite.php
のファイルは無かった気がしておりまして、Snow Monkey 自体も正しく復元できていない可能性がある気もしてきました…。できればその復元に使ったデータを見せていただきたいのですが可能でしょうか…?
♥ 0いいねをした人: 居ませんエラーログも送ります。
/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/
に変更)すればとりあえず管理画面には入れるようになると思うので、その状態で復元するのが良いと思います。♥ 0いいねをした人: 居ません今回サブスクに加入しましたが、ダウンロードした最新版のスノーモンキーを使用するにはchildのファイル内の該当箇所をすべて自分で書き換えないと最新版は利用できないということでしょうか?
はい、基本的にはそういうことになっちゃいますね…。お手数おかけすることになり申し訳ありません。
また、今後テーマのアップデートがある度にこのような対応をとらなければいけない可能性があるのでしょうか?
お使いのバージョンが7系ということで、約5年ほど前のバージョンになります。その間、Snow Monkey 独自のアップデートだけではなく、WordPress 自体の API の変更や動作環境の変更などもあり、それらに関するアップデートも行っています。その中でどうしても後方互換性に影響を与える変更を行わないといけない場合もあります。5年分まとめてになるので量は多くなってしまっていると思います。
今は Snow Monkey のほうはガンガンアップデートして機能追加していくということは減っているので、今回一旦動くようにしてしまえば、今後は同じくらい大変な作業を毎回しないといけないということは無いのかなと思います(もちろん前述したように WordPress 本体のアップデートに合わせてどうしようもないことはあり得ます)。
なお、テンプレートの上書きはアップデート時に影響がでる可能性が高いので、Snow Monkey ではテンプレートの上書きをしなくても、フックを使ってテンプレートの挙動を変えたり出力する HTML を変更する機能があります。フックでやったからといって完全に影響をゼロにすることはできませんが、テンプレートを上書きするよりは影響を減らせる可能性が高いので、可能な部分についてはフックで書き換えたり、なるべくテンプレートの上書きをしない形でカスタマイズするのがお勧めです。
♥ 0いいねをした人: 居ません例えば、先程のエラーメッセージだと、
/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 の当該ファイルと比べて古いものについては、すべて最新版のファイルに合わせて書き換えが必要になります。♥ 0いいねをした人: 居ませんお使いになられている 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 の最新版に対応させる作業を地道に行っていくしかないかなと思います…。
♥ 0いいねをした人: 居ませんコードありがとうございます。こちらの環境で試したところ、正しく動作しました。「先頭固定表示」のオンオフでも更新日が更新されるので、直近で「先頭固定表示」をオンにしたのなら、それが更新日的に先頭に表示されてしまうということはあるのかなと思いました。
♥ 0いいねをした人: 居ません -
投稿者投稿