特定のページのみ追尾サイドバーを表示したい

0
Who liked: No user
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • 投稿者
    投稿
  • #93730
    いいすた
    閲覧者
    7

    【お使いの Snow Monkey のバージョン】15.17.0
    【お使いの Snow Monkey Blocks のバージョン】13.6.0
    【お使いの Snow Monkey Editor のバージョン】6.2.1
    【お使いのブラウザ】Google Chrome 96.0.4664.55
    【当該サイトのURL】

    ### 実現したいこと

    特定の固定ページのみウィジェットエリア(追尾サイドバー)を表示したいです。

    ### 発生している問題

    下記のようなCSSを追加してみたのですが、なぜか時間が経つと表示されなくなってしまいます。キャッシュを削除するとまた表示されたりと、不安定で困っています。

    body:not(.page-id-11) .l-sidebar-sticky-widget-area {
    display: none;
    }

    ### 試したこと

    フックなどで実現できるかと過去のフォーラム記事を調べましたが見つかりません。ご教授いただけると幸いです。

    0
    Who liked: No user
    #93736
    いいすた
    閲覧者
    7

    追記

    「Widget Logic」などのプラグインの存在は知っておりますが、制作の都合上、WordPress 5.8の新ウィジェットエディターを使いたいのです。

    勝手を申しておりますが、どうかよろしくお願いいたします。

    0
    Who liked: No user
    #93755
    まーちゅう
    参加者
    367

    こんにちは。
    フックを使用する場合は、こんな感じです。

    /**
     * 特定のページのみ追尾サイドバーを非表示にする
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/widget-area/sidebar-sticky',
    	function ( $html ) {
    		if ( is_page( 11 ) ) {
    			return;
    		}
    		return $html;
    	}
    );
    2
    Who liked:
    #93756
    まーちゅう
    参加者
    367

    上のコードはページIDが、11のときに追尾サイドバーが非表示になります。
    IDとスラッグのどちらも指定できますが、スラッグの場合はシングルクォーテーションで囲ってください。
    複数ページで非表示にする場合は、
    if ( is_page( array( 11, 12, 'contact' ) ) ) {
    こんな感じで array でくくります。

    1
    Who liked:
    #93782
    いいすた
    閲覧者
    7

    > まーちゅう様

    返信ありがとうございます。

    フックのこと何となく分かってきました。

    ただ今回は特定の固定ページのみで「表示」したい、つまり「特定の固定ページ以外で非表示」ということになると思います。

    細かいことを言って申し訳ありませんが、その場合はどうしたらよいでしょうか。

    0
    Who liked: No user
    #93785
    まーちゅう
    参加者
    367

    条件分岐の書き方を変えるだけです。
    特定のページ以外での場合は is_page()! is_page() に変えます。

    /**
     * 特定のページ以外で追尾サイドバーを非表示にする
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/widget-area/sidebar-sticky',
    	function ( $html ) {
    		if ( ! is_page( 11 ) ) {
    			return;
    		}
    		return $html;
    	}
    );
    2
    Who liked:
    #93786
    いいすた
    閲覧者
    7

    おぉ!ここで条件分岐できるんですね!

    おかげさまで思い通りの結果を得られました。

    何度も丁寧にありがとうございました。

     

    トピックを閉じさせていただきます。

    0
    Who liked: No user
    #93821
    いいすた
    閲覧者
    7

    再び申し訳ありません。

    やはりキャッシュを削除するたびに該当ページのサイドバーが表示されたり、別ページを閲覧して戻ると非表示になっていたりと、不思議な状態になってしまいます。

    まずは下記のように、該当ページで通常のサイドバーを非表示にしています。

    add_filter(
    'snow_monkey_template_part_render_template-parts/widget-area/sidebar',
    function ( $html ) {
    if ( is_page( 11 ) ) {
    return;
    }
    return $html;
    }
    );

    次に、該当ページ以外で、追尾サイドバーを非表示にしています。

    add_filter(
    'snow_monkey_template_part_render_template-parts/widget-area/sidebar-sticky',
    function ( $html ) {
    if ( ! is_page( 11 ) ) {
    return;
    }
    return $html;
    }
    );

    何か、やってはいけないことをしているのでしょうか。何度も申し訳ありませんが、ご教授ください。

    0
    Who liked: No user
    #93846
    アバター画像キタジマ タカシ
    参加者
    2421

    やはりキャッシュを削除するたびに該当ページのサイドバーが表示されたり、別ページを閲覧して戻ると非表示になっていたりと、不思議な状態になってしまいます。

    この「キャッシュ」というのは何のキャッシュでしょうか? Snow Monkey のカスタマイザーで設定できるウィジェットエリアのキャッシュ、プラグイン等でのページキャッシュ、ブラウザキャッシュ等

    1
    Who liked:
    #93871
    いいすた
    閲覧者
    7

    >キタジマさま

    返信ありがとうございます。

    管理バーの「キャッシュを削除」のことです。

    詳しい経緯としては、My SnowMonkeyプラグインに上記のコードを記載し、該当ページをチェックしましたが反映されず「もしやキャッシュ?」と思いこのボタンを押したら表示されました。しかし他の固定ページへ移動して戻ってきたりブラウザの更新ボタンを押したりすると消えてしまいます。

    まだ公開前のウェブサイトではありますが、アドレスを載せておきます。他の固定ページの追尾サイドバーを非表示にする処理は反映されているようです。ただ、このページだけ表示されているはずの追尾サイドバーが見えない状態です。

    お手数をおかけしますが、よろしくお願いします!

    0
    Who liked: No user
    #93876
    いいすた
    閲覧者
    7

    関連する箇所を少しいじってみての経過報告です。

    カスタマイザーの「ページ速度最適化」内にある「ウィジェットエリアをキャッシュ」のチェックを外したら表示されました。

    取り急ぎ、この方法でいきたいと思います。

    0
    Who liked: No user
    #93878
    アバター画像キタジマ タカシ
    参加者
    2421

    なるほどです。「ウィジェットエリアをキャッシュ」が有効な場合、キャッシュがないときは「ページが表示されたときに表示されたウィジェットエリアをキャッシュ」します。なので例えば「ページIDが11ではないページを開いたとき」にそのページのウィジェットエリアがキャッシュされてしまい、ページIDが11のページでもそのキャッシュが表示されてしまう、ということになります。

    これはカスタマイザーにあるキャッシュ機能ではなくページキャッシュでも同じことで、例えばログインユーザーにしか表示させてはいけないものがキャッシュされて非ログインユーザーに表示されてしまう、のようなことが起こりえます。なのでキャッシュは動作をよく理解した上で使用しないとリスクが伴うものではあります。

    2
    Who liked:
    #93897
    いいすた
    閲覧者
    7

    >キタジマさま

    ありがとうございます。よく機能の動作も理解せず速くなればとすべてにチェックを入れていました。

    今後はよく確認をしながら選択していきたいと思います。

    ありがとうございました!

    トピック、今度こそ閉じます(笑)

    1
    Who liked:
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • トピック「特定のページのみ追尾サイドバーを表示したい」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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