質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.58%

ヘッダーナビゲーションメニューを変更したい

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,334

smiyuki

score 12

 前提・実現したいこと

WordPressの有料テンプレート(sango)を使ってホームページを作成しています。
ヘッダーのナビゲーションメニューをトップページとそれ以外で変更したいです。
以下のコードのどの部分にどういったコードを記載すると良いか教えていただけないでしょうか。

 該当のソースコード

<body <?php body_class(); ?>>
    <div id="container">
        <header class="header<?php if(get_option('center_logo_checkbox')) echo ' header--center'; ?>">
            <?php if(wp_is_mobile() && is_active_sidebar( 'nav_drawer' )): //ナビドロワー ?>
                <div id="drawer">
                    <input type="checkbox" id="drawer__input" class="drawer--unshown" >
                    <label id="drawer__open" for="drawer__input"><i class="fa fa-bars"></i></label>
                    <label class="drawer--unshown" id="drawer__close-cover" for="drawer__input"></label>
                    <div id="drawer__content">
                        <div class="drawer__title dfont">MENU<label class="close" for="drawer__input"><span></span></label></div>
                        <?php dynamic_sidebar('nav_drawer'); ?>
                    </div>
                </div>
            <?php endif; //END ナビドロワー ?>
            <div id="inner-header" class="wrap cf">
                <?php //ロゴまわり
                    $title_tag = (is_home() || is_front_page()) ? 'h1' : 'p'; //トップページのみタイトルをh1に
                 ?>
                    <<?php echo $title_tag;?> id="logo" class="h1 dfont">
                        <a href="<?php echo home_url(); ?>"><?php $logo = esc_url(get_option('logo_image_upload'));
                            if($logo){ ?><img src="<?php echo $logo; ?>" alt="<?php bloginfo('name'); ?>"><?php } if(!get_option('onlylogo_checkbox')) bloginfo('name'); ?></a>
                    </<?php echo $title_tag;?>>
                <?php //END ロゴまわり
                    //PC用ヘッダーナビ
                    if(has_nav_menu('desktop-nav')) {
                        echo '<nav class="desktop-nav clearfix">';
                        wp_nav_menu(array(
                         'container' => false,
                         'theme_location' => 'desktop-nav',
                           'depth' => 2,
                           'fallback_cb' => ''
                        ));
                        echo '</nav>';
                      } //END PC用ヘッダーナビ ?>
            </div>
            <?php //モバイル用ナビ
              if(wp_is_mobile() && has_nav_menu('mobile-nav')) {
                  echo '<nav class="mobile-nav">';
                wp_nav_menu(array(
                 'container' => false,
                 'theme_location' => 'mobile-nav',
                 'depth' => 1,
                 'fallback_cb' => ''
                 ));
                echo '</nav>';
        } //END モバイル用ナビ ?>
        </header>

 補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

check解決した方法

0

条件分岐を試してみたのですが、うまくいかなかったため、header.phpの他に、header-index.phpのファイルを設定し、トップページでheader-index.phpを読み込む形で、対応することにしました。
ご回答いただいた皆様ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

トップページは、どこのページを指しているのか?
トップページとそれ以外でヘッダをどのように変えるのかわからないので、条件判断の方法だけ記載します。

<header class="header<?php if(get_option('center_logo_checkbox')) echo ' header--center'; ?>">
<?php if ( is_front_page() && is_home() ): ?>
    // デフォルトホームページの場合のヘッダ
<?php elseif ( is_front_page() ): ?>
    // 固定ペーシを使ったホームページの場合のヘッダ
<?php elseif ( is_home() ): ?>
    // ブログページの場合のヘッダ
<?php else: ?>
    // それ以外の場合のヘッダ
<?php endif; ?>
</header>


という感じで分けることになります。

詳しくは、https://wpdocs.osdn.jp/条件分岐タグ の「ブログページ」参照。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/20 15:50

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

    キャンセル

0

カスタムメニューを新しく作成(PC用とモバイル用2つ)。

if(is_home() || is_front_page()):

//PC用ヘッダーナビから//END モバイル用ナビまで

else:

//PC用ヘッダーナビ2から//END モバイル用ナビ2まで

endif;

これでトップとそうでないときの表示に分けることが出来ます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/20 15:47

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

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.58%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る