ヘッダー (header.php)グローバルナビを特定の固定ページで非表示にするための記述

Simplicityの特徴 フォーラム テーマファイルのカスタマイズに関する質問など ヘッダー (header.php)グローバルナビを特定の固定ページで非表示にするための記述

  • このトピックには20件の返信、2人の参加者があり、最後ににより1年、 7ヶ月前に更新されました。
20件の返信スレッドを表示中
  • 投稿者
    投稿
    • #31976
      ゲスト

      よろしくお願いします

      グローバルナビを特定の固定ページで
      非表示にするための記述を教えていただけないでしょうか

      参考にですが
      特定の固定ページだけ別メニューを表示することは可能でしょうか

    • #31979
      yokudekiru
      ゲスト

      特定の固定ページと言うのは関数でできると思います。

      is_page();
      // 何れかの個別の固定ページが表示されている場合。
      
      is_page( 42 );
      // ID が 42 の固定ページが表示されている場合。
      
      is_page( 'Contact' );
      // post_title が "Contact" である固定ページが表示されている場合。
      
      is_page( 'about-me' );
      // post_name(スラッグ)が "about-me" である固定ページが表示されている場合。

      参考 関数リファレンス/is page

      それ使ってheader.phpのところの下記の周りにすれば出来るんではないでしょうか(私は初心者なためコードは結構適当です)

      <?php if (is_navi_visible())://ナビゲーションが表示のとき
              get_template_part('navi');//グローバルナビのためのテンプレート
       endif; ?>

      ↓↓

      <?php if(is_page(’42’)): ?>
      <?php if (is_navi_visible())://ナビゲーションが表示のとき
      get_template_part(‘navi’);//グローバルナビのためのテンプレート
      endif; ?>
      <?php endif; ?>

      42のところは変えてください。

      • この返信は9年、 4ヶ月前にアバター画像わいひらが編集しました。理由: bbPressの文字化けの修正
    • #31980
      yokudekiru
      ゲスト

      コードがおかしくなってるので普通に修正


      is_page();
      // 何れかの個別の固定ページが表示されている場合。

      is_page( 42 );
      // ID が 42 の固定ページが表示されている場合。

      is_page( ‘Contact’ );
      // post_title が “Contact” である固定ページが表示されている場合。

      is_page( ‘about-me’ );
      // post_name(スラッグ)が “about-me” である固定ページが表示されている場合。


      <?php if (is_navi_visible())://ナビゲーションが表示のとき
      get_template_part(‘navi’);//グローバルナビのためのテンプレート
      endif; ?>

    • #31983
      Hidekichi
      ゲスト

      > 特定の固定ページだけ別メニューを表示することは可能でしょうか
      できますが、別メニューを読み込むための仕組みが必要です。

      > 特定の固定ページで非表示にする
      特定のページのpage-idがわかれば、cssでdisplay: noneするだけじゃないかなぁと思います。
      page-idはhtmlのソースを見てもわかりますし、その個別ページの編集画面でアドレスにも表示されます。

      おそらく特定の固定ページ何かするという質問自体は過去のトピックにもいくつかあると思うのでそれらを参照してみて下さい。

      cssでdisplay:noneだと目的のページが複数あればいくつも書かないといけないのでjQueryでも良いかなと。もちろんheader.phpあたりのget_template_part(‘navi’)をif文で条件分岐しても良いかと。

      参考:
      http://elearn.jp/wpman/function/is_page.html
      http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/is_page

      jqueryの場合 サンプル例 | jsFiddleを参考に、子テーマjavascript.jsに追記します。

    • #31986
      ゲスト

      <?php if(is_page(’42’)): ?> の記述で固定ページ(ID-42)のメニューが消えるのでしょうか??

      cssでグローバルナビを消す?
      display: noneの前に何て書けばよいのでしょうか?

      因みにpage-idは「1152」です

    • #31987
      yokudekiru
      ゲスト

      page-idは「1152」ならば、header.phpの以下のところを

      <?php if (is_navi_visible())://ナビゲーションが表示のとき
      get_template_part(‘navi’);//グローバルナビのためのテンプレート
      endif; ?>

      を消して

      <?php if(is_page(’1152’)): ?>
      <?php if (is_navi_visible())://ナビゲーションが表示のとき
      get_template_part(‘navi’);//グローバルナビのためのテンプレート
      endif; ?>
      <?php endif; ?>

      とすればいいんじゃないかと思います。

    • #31988
      yokudekiru
      ゲスト

      しまった、ふたつ目のコード正しくは

      <?php if(!is_page(’1152’)): ?>
      <?php if (is_navi_visible())://ナビゲーションが表示のとき
      get_template_part(‘navi’);//グローバルナビのためのテンプレート
      endif; ?>
      <?php endif; ?>

      です。危ない危ない。

    • #31993
      Hidekichi
      ゲスト

      cssだけでも消せるのですが、対象となるページが多くなるとたくさん記述しないといけなくなるので、ひとつとかふたつぐらいならcssで、それ以上ならjQueryなりphpを使う方が簡単ですよと言うことです。

      cssなら、

      .post-id-xxx #navi {
        display: none;
      }

      だけです。xxxには、page-idが入ります。

      #31988 のyokudekiruさんのコードは、つまり(「! is_page()」なので)、page-idが1152の記事以外で、カスタマイザーでナビの表示を設定している場合は、get_template_part(‘navi’)でnavi.phpを呼び出しますと言う意味合いです。
      なので、1152の記事では#naviが消えます

      該当記事はnavi.phpを呼び出さないので、結果表示しないということになります。それ以外の記事は表示されます。

      header.phpは親テーマをイジることになるかと思うので、カスタマイズとアップデートにそなえてファイル自体をバックアップされておくことをオススメします。

    • #31994
      Hidekichi
      ゲスト

      ☓ .post-id-xxx #navi { ←なんでやねん(笑)
      ◯ .page-id-xxx #navi {

    • #31995
      ゲスト

      <報告です>

      「header.php」
      <?php if(is_page(’1152’)): ?>
      全ページでメニューが消える

      「CSS」
      .post-id-1152 #navi {
      display: none;
      }
      メニュ消えない

    • #31996
      ゲスト

      <訂正>
      ☓ .post-id-1152 #navi {
      ◯ .page-id-1152 #navi {
      メニュ消えない

    • #31998
      Hidekichi
      ゲスト

      > <?php if(is_page(’1152’)): ?>
      ! が抜けてます。それともしかするとですが、クォートが全角かも知れませんので半角で打ちなおして下さい。shift+2か7のシングルでもダブルでもどちらでも良いので、同じクォートで記事IDを囲みます。

      > メニュ消えない
      どのcssのどこ書かれたかにもよるんですけど、消えないのは、そのcssを何かが上書きしているからです。
      後から読み込まれるスタイルはそれまでのを上書きします。

      試しに、firefox、chromeで、F12を押しweb開発環境パネルを開いたら、右側で新しいルール追加します。そこに.page-id-1152 #naviを追加してdisplay:noneと入れて下さい。間違いなく消えます。

      次に、headタグのできるだけ最後の方に書かれているcssに書き込むか、Simplicityのcssで、おそらくどこでも使われていないであろうnavに対して書いてみて下さい。

      .page-id-1152 nav {
        display: none;
      }
    • #31999
      Hidekichi
      ゲスト

      ちなみにheader.phpをイジるのであればcssはイジる必要はありません。
      メニューを表示したくないページが少ないのであれば、例えば、

      page-id-20とpage-id-45の記事だけメニューを出したくないとしたら、

      .page-id-20 nav,
      .page-id-45 nav {
        display: none;
      }

      もし、もっとたくさんのページで表示したくないなら、header.phpの該当部分で

      <?php
      // is_pageの前に ! をお忘れなく
      // htmlのタグを挟まないので {}で書いた方が読みやすいと思います。
      // is_page( array(...) )は複数のページがある場合です。
      // ひとつだけなら、yokudekiruさんのサンプルと同じ書き方でok
      if ( ! is_page( array("20","45") ) ) {
        if (is_navi_visible() {
          get_template_part('navi');
        }
      }
      ?>

      文字が実体化しているのは、その内わいひらさんが直してくれると思いますが、クォートです。

    • #32000
      Hidekichi
      ゲスト

      うぉ、せっかくインデントやら入れてたのにcodeいれるの忘れてた(笑)

    • #32058
      ゲスト

      X <?php if(!is_page(’1152’)): ?>
      ◯ <?php if(!is_page(‘1152’)): ?>
      クォート(?)が全角→半角の間違いでした
      コピペ専門なため気づきませんでした、有難うございます

      子テーマCSSに書いた
      .page-id-1152 nav {
      display: none;
      }
      上手く行きません

      バージョンアップ毎にheader.phpへ記述するしかなさそうです

    • #37321
      ロン
      ゲスト

      とても勉強になっております。
      ありがとうございます。

      > 特定の固定ページだけ別メニューを表示することは可能でしょうか
      できますが、別メニューを読み込むための仕組みが必要です。

      とありますが、
      INFOPLATE5WPを使っていて、
      私もなんとかこれを実現したいと考えています。

      いろいろと検索しているのですが、
      どうしていいかどうしてもわかりません。

      これはかなり大掛かりになるのでしょうか?

    • #37329
      アバター画像わいひら
      キーマスター

      別メニューを表示させるには、テンプレートファイルを編集してPHPコードを書く必要があります。
      なので、CSSだけのカスタマイズと比較すれば、大掛かりといえば大掛かりかもしれません。
      最低限以下のようなことはしないといけないです。
      WordPressのカスタムメニューを使用してナビゲーションを作成する|Wordpressでビジネスサイトをつくろう【第11回】 | HTML5でサイトをつくろう

    • #37333
      ロン
      ゲスト

      わいひらさん

      ご回答ありがとうございます。

      カスタムメニューを使って、
      グローバルメニューを非表示にして、
      新しくカスタムメニューで作ったものを表示させました。

      header.phpで、
      どこのページに表示させるかは条件分岐で指定しました。

      ただ、CSSの装飾ができていないせいで、
      文字だけで、しかも次に様な感じで、
      縦に並びます。

      ・あああああ
      ・いいいいい
      ・ううううう

      header.phpで、
      条件分岐でカスタムメニューで
      設定したメニューを表示させることまでは判りました。

      固定ページごとに、
      グローバルメニューを切り替える場合は、
      この様にすればいいのでしょうか?
      それとも、もっと他の方法がいいのでしょうか?

      それにしてもCSSの設定など、
      私には知識がなくて判りません。

      この辺りを外注でやって頂く事は出来ないでしょうか?

      もしよろしければ、
      メール頂けたら有り難いのですが。

      大変にお手数おかけしますが、
      どうぞよろしくお願いいたします。

    • #37349
      アバター画像わいひら
      キーマスター

      申し訳ないですが、自分の仕事で手一杯で、外注の仕事などは受ける余裕がありません。
      こういったカスタマイズの依頼などは、クラウドソーシングサービスなどに依頼することをおすすめします。
      http://wp-simplicity.com/reference/crowdsourcing-service/

    • #52459
      K
      ゲスト

      何点か質問です。
      1、Googleアドセンス広告がグローバルナビにのり、グローバルナビが幅広くなっていまうのと、サイドバーのGoogleアドセンス広告がその都度サイズ変更するためカテゴリーなどの間に広告がでてしまうのですが広告の張り方がおかしいのですか?
      2.見出しの色を変更するのに、子テーマCSSに追加しても反映されず、カスタマイズの追加CSSに追加したら反映されたのですが、何かいじるのはカスタマイズの追加CSSなのでしょうか?またロリポップに契約中ですがロリポップもいじることはありますか?
      3.モバイル版でフッター部分にメニューのボタンを表示させたいのですが、反映されません。それは、固定ページなど設定していないからですか?
      サイトはhttp://nonbiri-plsu.com/です。Simplicity2を使用していてサイトを参考にしたいのですがなんだかぐちゃぐちゃしています。パソコン初心者です。

    • #52462
      アバター画像わいひら
      キーマスター

      すいません。
      申しわけないのですが、新しい問い合わせの場合は、新しくトピックを立てていただければ幸いです。
      https://wp-simplicity.com/suport/topic/first-time/
      その方が、同様のトラブルの方が検索しやすいので、ご協力お願いします。
      新しくトピックを立てていただければ、そこでお答えしますのでよろしくお願いいたします。

20件の返信スレッドを表示中
  • フォーラム「テーマファイルのカスタマイズに関する質問など」には新規投稿および返信を追加できません。
スポンサーリンク
アドセンス(大)
アドセンス(大)