-
投稿者投稿
-
2019年8月20日 6:01 PM #25679
【お使いの Snow Monkey のバージョン】v7.3.0
【お使いのブラウザ】Safari chromeマルチサイト化でこのテーマを利用いたしますが、3つのサイトのヘッダデザインをそれぞれ変えようと思います。
例)template-parts/header/1row.php に、独自にDIVを足してデザインアレンジしたいのですが、ここを触っても、サイトの3つはすべて同じデザインになりますが、それぞれ内容を変えるにはどのようにしたらよいでしょうか?
3つ分書き込んで、cssでdisplay:none, block で出し分ける以外になにか方法があるでしょうか?
♥ 0いいねをした人: 居ません2019年8月20日 9:41 PM #25696それぞれのサイトでヘッダーのデザインを違うものにされたいのだと思いますが、それぞれでどれくらい違うものでしょうか? 一部の場合なら置換でちょちょっと、結構違うならそれぞれにテンプレートをつくるのが良いと思います。
また、カスタマイズは、子テーマ・My Snow Monkey プラグインどちらを利用中(もしくは利用しようとしている)でしょうか? それぞれでやり方が若干異なりますので。
♥ 0いいねをした人: 居ません2019年8月20日 10:57 PM #25717現在子テーマです。
My Snow Monkey プラグインも入れています。
サイトの違いは、各ヘッダのグローバルナビ以外に、リンクエリアを設けるというものです。(3サイトごとにリンク数が違う)
♥ 0いいねをした人: 居ません2019年8月21日 12:31 PM #25761マルチサイトでのサイト毎の分岐方法は下記のサイトが参考になると思います。
もし、子テーマでされる場合であれば
template-parts/header/1row.php
の変更したい箇所に、それぞれの分岐処理を挟めば良いと思います。プラグインでされる場合であれば
global $current_blog; $blog_id = $current_blog->blog_id; add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name, $vars ) { if ( $slug === 'template-parts/header/1row' ) { ob_start(); \Framework\Helper::get_template_part( 'template-parts/header/1row', $name, $vars ); $html = ob_get_clean(); if ( 1 === $blog_id ) { // 置換したいhtml内容 } } return $html; }, 10, 4 );
と言う感じで、こちらも分岐でそれぞれの置換をやる形でどうでしょうか?
または分岐で読み込むテンプレートを変更するのも良いと思います。♥ 0いいねをした人: 居ません2019年8月21日 1:02 PM #25767@ケミさん
グローバル変数を使うよりこちらのほうが良いかも(あと、$html
は引数から渡ってくるのでob_start()
はしなくて大丈夫だと思います)。add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { $blog_id = get_current_blog_id(); if ( 'template-parts/header/1row' === $slug ) { if ( 1 === $blog_id ) { // 置換 $html = str_replace( '...', '...', $html ); } } return $html; }, 10, 2 );
♥ 0いいねをした人: 居ません2019年8月21日 1:03 PM #25768@rockpabro さん
テンプレートをそれぞれ作る方法はまたあとで書き込みますね。♥ 0いいねをした人: 居ません2019年8月21日 2:32 PM #25773これは、価値の高い欲しい情報です。ケミさん、キジマさんありがとうございます!
♥ 0いいねをした人: 居ません2019年8月21日 3:22 PM #25777テンプレートをそれぞれつくる方法です。
例えば、
子テーマ/template-parts/my-header
というディレクトリを作って、そこにmy-header-1〜3.php
をつくるとします。その上で、下記のコードを追加するとどうでしょう?add_filter( 'snow_monkey_get_template_part_args', function( $args ) { $blog_id = get_current_blog_id(); // ヘッダーレイアウトが1行のときに、各子サイトでテンプレートを差し替える if ( 'template-parts/header/1row' === $args['slug'] ) { if ( 1 === $blog_id ) { $args['slug'] = 'template-parts/my-header/my-header-1.php'; } } return $args; } );
♥ 0いいねをした人: 居ません2019年8月23日 11:22 PM #26046ありがとうございます。
まずやってみます。
♥ 0いいねをした人: 居ません2019年10月1日 4:11 PM #29276プロジェクトの方向性に変化が出たため最終検証に至りませんでしたが
みなさま貴重な情報ありがとうございました。とじてくださってけっこうです。
♥ 0いいねをした人: 居ません -
投稿者投稿
- トピック「マルチサイトの時のヘッダ」には新しい返信をつけることはできません。