マルチサイトの時のヘッダ

0
いいねをした人: 居ません
  • このトピックには9件の返信、3人の参加者があり、最後にrockpabroにより4年、 6ヶ月前に更新されました。
10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • 投稿者
    投稿
  • #25679
    rockpabro
    閲覧者
    0

    【お使いの Snow Monkey のバージョン】v7.3.0
    【お使いのブラウザ】Safari chrome

    マルチサイト化でこのテーマを利用いたしますが、3つのサイトのヘッダデザインをそれぞれ変えようと思います。

    例)template-parts/header/1row.php に、独自にDIVを足してデザインアレンジしたいのですが、ここを触っても、サイトの3つはすべて同じデザインになりますが、それぞれ内容を変えるにはどのようにしたらよいでしょうか?

    3つ分書き込んで、cssでdisplay:none, block で出し分ける以外になにか方法があるでしょうか?

     

    0
    いいねをした人: 居ません
    #25696
    キタジマ タカシ
    参加者
    2253

    それぞれのサイトでヘッダーのデザインを違うものにされたいのだと思いますが、それぞれでどれくらい違うものでしょうか? 一部の場合なら置換でちょちょっと、結構違うならそれぞれにテンプレートをつくるのが良いと思います。

    また、カスタマイズは、子テーマ・My Snow Monkey プラグインどちらを利用中(もしくは利用しようとしている)でしょうか? それぞれでやり方が若干異なりますので。

    0
    いいねをした人: 居ません
    #25717
    rockpabro
    閲覧者
    0

    現在子テーマです。

    My Snow Monkey プラグインも入れています。

    サイトの違いは、各ヘッダのグローバルナビ以外に、リンクエリアを設けるというものです。(3サイトごとにリンク数が違う)

    0
    いいねをした人: 居ません
    #25761
    Hatsuki
    閲覧者
    6

    マルチサイトでのサイト毎の分岐方法は下記のサイトが参考になると思います。

    もし、子テーマでされる場合であれば
    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
    いいねをした人: 居ません
    #25767
    キタジマ タカシ
    参加者
    2253

    @ケミさん
    グローバル変数を使うよりこちらのほうが良いかも(あと、$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
    いいねをした人: 居ません
    #25768
    キタジマ タカシ
    参加者
    2253

    @rockpabro さん
    テンプレートをそれぞれ作る方法はまたあとで書き込みますね。

    0
    いいねをした人: 居ません
    #25773
    rockpabro
    閲覧者
    0

    これは、価値の高い欲しい情報です。ケミさん、キジマさんありがとうございます!

    0
    いいねをした人: 居ません
    #25777
    キタジマ タカシ
    参加者
    2253

    テンプレートをそれぞれつくる方法です。

    例えば、子テーマ/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
    いいねをした人: 居ません
    #26046
    rockpabro
    閲覧者
    0

    ありがとうございます。

    まずやってみます。

    0
    いいねをした人: 居ません
    #29276
    rockpabro
    閲覧者
    0

    プロジェクトの方向性に変化が出たため最終検証に至りませんでしたが

    みなさま貴重な情報ありがとうございました。とじてくださってけっこうです。

    0
    いいねをした人: 居ません
10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • トピック「マルチサイトの時のヘッダ」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。