-
投稿者投稿
-
2020年9月1日 4:44 PM #56571
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】11.1.0
【お使いのブラウザ】Chrome
【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)===
関連記事表示にYARRPを使おうと思っています。カスタムテンプレートの設置場所がテーマフォルダー内になっていて、テーマのアップデートを行うごとにアップロードをしています。作業は簡単なのですが忘れることが時々あります。
MySnowMonkey などを使った、良い対応策はありませんでしょうか?♥ 0いいねをした人: 居ません2020年9月1日 5:36 PM #56573YARRPは
でしょうか。
この場合であれば、おそらく元のテーマを上書きしない為、子テーマを使ってやるのが良いと思います。
Snow Monkey は子テーマの使用を非推奨としていますが、
その理由としては「親テーマのテンプレートを上書きする」と言う、子テーマの機能は強力過ぎるから、その強力過ぎる機能の影響で生じてしまう問題を防ぐ為と言うのが大きいです。しかし、今回の場合は、元々のテーマに存在しない YARRP 用のファイルを置くだけなので、それらの問題はありません。
ですので、それらのファイルを配置した子テーマを使っても大丈夫です。(ちょっとややこしくなるかもしれませんが)子テーマを使う場合でも、テーマを上書きするようなファイルは子テーマに置かないで My Snow Monkey でカスタマイズしてください。
Snow Monkey の子テーマについては、
を参考にしてください。
♥ 1いいねをした人: 居ません2020年9月1日 8:17 PM #56585ありがとうございます。
追加の質問です。
子テーマでは、追加CSSなどのカスタマイザーでの設定は引き継がないのでしょうか?
♥ 0いいねをした人: 居ません2020年9月1日 10:05 PM #56590子テーマでは、追加CSSなどのカスタマイザーでの設定は引き継がないのでしょうか?
あ…。子テーマでは、それらの設定を引き継がない問題もありました…。
WordPressの仕様で、追加CSSなどのカスタマイザーの設定は引き継がないです。子テーマに設定を移行するの面倒だと思うので、YARPPで子テーマを使わない方法を調べてみましたが、
YARPPは管理画面でカスタムを初めて設定する時(?)に強制的にテーマフォルダーにプラグイン内のyarpp-templatesフォルダーの中身をコピーするような処理が実行されるんですね…。
なので、YARPPプラグインを使用するとカスタムの初期設定の際に必ずテーマに関連テンプレートが生成されるようです。(ちょっと設定されるタイミングとかよく解りませんが)んー、となると、My Snow Monkey でやるなら
My Snow Monkey のプラグインフォルダーにそれらのファイルのコピーを置いておき、
テーマアップデートが完了した時にテーマフォルダーにコピーするような処理を作れば何とかできるかも…って感じです。ちょっとできるか解りませんが…
できそうであれば追記します。♥ 0いいねをした人: 居ません2020年9月1日 10:30 PM #56592できた…これでどうだ!!
—
My Snow Monkey のプラグインフォルダーにyarpp-templatesフォルダーを作り、そこにYARPPのテンプレートファイルをすべて配置してください。
そして、My Snow Monkey に下記を記述してください。
テーマアップデート時に、テーマディレクトリにファイルをコピーします。add_action( 'upgrader_process_complete', function( $upgrader_object, $hook_extra ) { if ( 'update' === $hook_extra['action'] && 'theme' === $hook_extra['type'] ) { foreach ( $hook_extra['themes'] as $theme ) { if ( 'snow-monkey' === $theme || 'snow-monkey/resources' === $theme ) { $templates_dir = trailingslashit( __DIR__ . '/yarpp-templates' ); require_once( ABSPATH . 'wp-admin/includes/file.php' ); WP_Filesystem( false, get_stylesheet_directory() ); global $wp_filesystem; if ( $wp_filesystem->method !== 'direct' ) return false; copy_dir( $templates_dir, get_stylesheet_directory() ); } } } }, 10, 2 );
このトピックの問題は、WooCommerceのテンプレートファイルとかでもありましたし、
子テーマ使わず配置し直すとかは結構使えそうなので、自分でも勉強になりました。♥ 0いいねをした人: 居ません2020年9月1日 11:08 PM #56596@kazu さん
子テーマでは、追加CSSなどのカスタマイザーでの設定は引き継がないのでしょうか?
別テーマ扱いになるので引き継がないようです。カスタマイザーの設定をインポート・エクスポートするプラグインがあるので、Snow Monkey 時にエクスポート、子テーマに切り替えてそれをインポート、すると引き継げると思います。
@Kmical Lights さん
できた…これでどうだ!!
これやばいですね笑
♥ 0いいねをした人: 居ません2020年9月1日 11:35 PM #56608これやばいですね笑
強制的にファイルを上書きする意味で、テーマで使ってるファイルだった場合には安全かどうか考えると、やばいかもです……
まあ、テーマフォルダにコピーが失敗してもテーマで使われていないファイル名であれば動作的には安全かな…と言う感じで。きちんとコピーされたかチェックして、失敗かどうか更新画面に表示させる仕組みも作ってやれば良いかもなので、そこまでやればテーマ更新時にカスタマイザーの値をマイグレーションさせるとかもできるかもです。もうちょいだけ調べときますかねー
(以前、カスタマイザーの構造を変更した際に設定し直したような気もしたんで…)♥ 0いいねをした人: 居ません2020年9月1日 11:39 PM #56609あ、危ないというか、発想が! よく思いつきましたねという意味でした笑
そこまでやればテーマ更新時にカスタマイザーの値をマイグレーションさせるとかもできるかもです。
できるようになると幅が広がりますね。
♥ 0いいねをした人: 居ません2020年9月2日 12:07 AM #56614あ、危ないというか、発想が! よく思いつきましたねという意味でした笑
100%、夜のアルコール成分のお陰です(笑)
飲めば思いつくのでキタジマさんも呑みまくろう!
そろそろ、Snow Monkeyオンライン飲み会を実施してください♥ 1いいねをした人: 居ません2020年9月2日 3:55 AM #56622Kmical Lights さん、
キタジマさん、
ありがとうございます。ものすご~く勉強になります&助かります。
♥ 1いいねをした人: 居ません2020年9月2日 10:44 AM #56647@Kmical Lights さん
そろそろ、Snow Monkeyオンライン飲み会を実施してください
なにかお題があればやりたいですね〜
@kazu さん
勉強になったとのこと良かったです! トピック閉じますね。
♥ 0いいねをした人: 居ません -
投稿者投稿
- トピック「YARPPテンプレートの設置場所」には新しい返信をつけることはできません。