サポート » 使い方全般 » カスタムメニューでグローバルナビやヘッダーナビ、フッターを管理した

  • 解決済 kazuvegas

    (@kazuvegas)


    先程、カスタムメニューを登録中にフリーズしたので強制終了しました。それが原因かはわかりませんが、詳しい方教えていただけないでしょうか。
    【私のレベル】
    HTMLとCSSでHPを作れるがワードプレスは本やネットで勉強中。
    関数も理解不足と感じている。

    【問題】
    以下のサイトのヘッダー部分、複数のカスタムメニューで困っています。
    http://design-cake.net/

    ヘッダーの右上(以下グローバルナビ)とヘッダー背景の上部のメインのナビ(以下ヘッダーナビ)が同じ文字が出力されて困っています。ちなみにCSSはまだいじっていません。

    【functions.php と header.php に記述した内容】

    ◆funcions.php(一部抜粋)

    // カスタムメニュー機能を有効にするコード(CHAPTER 12)
    add_theme_support( 'menus' );
    // カスタムメニューの「場所」を設定するコード
    register_nav_menu( 'header-navi', 'ヘッダーのナビゲーション' );
    register_nav_menu( 'header-sub-navi', 'グローバルナビゲーション' );

    ◆header.php(一部抜粋)
    ・グルーバルナビの部分

    <div style="float:right; width: 450px;">
     <?php wp_nav_menu('theme_location = header-sub-navi' ); ?>
    </div>

    ・ヘッダーナビの部分

    <div><?php wp_nav_menu('theme_location = header-navi' ); ?>
    </div>

    ※管理画面のテーマの場所はちゃんと設定できています。
    ※試しに5行上に記載したheader.phpの「ヘッダーナビの部分」を「header-navi」から「header-sub-navi」に変更しても「header-navi」の内容が出力されてしまいます。キャッシュは消しても同じでした。

    【心当たり】
    管理画面のメニューでテーマの場所を選んでいるときに、サーバーとのやりとりでブラウザがフリーズしたので強制終了しました。それから5分ほど文字化けが続いてなおったのですが、その際に送ったデータが反映され続けているのでは?と考えています。どなたか力をお貸しください。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • こんにちは。
    私も超初心者なのですが、私がいつもやっている方法を書いてみます。

    ご提示されているウェブサイトは、高橋のりさんがお作りになられているsimple*simpleというテンプレートを叩き台にしておられていて、高橋さんがお書きになられている書籍、および高橋さんのウェブログから「元ソースがダウンロードできる」ものですね。

    なので「kazuvegasさんがお作りになられたウェブサイト」と「高橋のりさんがお作りになられたテンプレート」のソース(特にheader.phpとfunctions.php)を見比べる事です。
    chapter12と書かれているので第12章のコードがあるならば、それと比較してみるとヒントが掴めるんじゃないでしょうか。

    DFというソフトを使って違いを出してみたり、印刷して、一行ずつ確認するなど、方法は幾らもあると思います。

    「心当たり」が正しいのなら再アプロードがベストですよね。
    転んでも泣かない、というか何度でもやり直して「何が間違っているのか」を悩むのが結局のところ、一番勉強になると思います。

    トピック投稿者 kazuvegas

    (@kazuvegas)

    コメントありがとうございます。

    私の説明がわかりにくく申し訳ないです。
    実は元のプログラムと自分のプログラムは何度も見直していますので間違いはないと思います。

    今回の心当たりというのはテーマフォルダ以外のところの問題ではないか?と考えているのです。

    カスタムメニューを登録している際に起きたサーバー側とのトラブルではないかと考えていますので、wo-adminやwp-contentなど他のフォルダのファイルがうまく書き換えられていないのではないでしょうか?

    もしお詳しいかたがいらっしゃればお願いします。

    こんにちは

    functions.php について

    ナビゲーションメニュー

    を、参照してみてください。

    // カスタムメニュー機能を有効にするコード(CHAPTER 12)
    add_theme_support( 'menus' );

    は、不要なのでは?

    header.phpについて

    <div style="float:right; width: 450px;">
     <?php wp_nav_menu('theme_location = header-sub-navi' ); ?>
    </div>

    は、

    <div style="float:right; width: 450px;">
     <?php wp_nav_menu( array( 'theme_location' => 'header-sub-navi' ) ); ?>
    </div>

    ではないかと思います。

    他、
    テーマロケーションの値に、- を使っていますが、_ の方がいいかもしれないです。

    WordPressの引数の指定は、大抵、parse_str 形式で動くように作られていますが、
    検証はしていませんが、少なくても =の両側にスペースを入れた場合は、エラーになるんじゃないかと思います。

    モデレーター Takuro Hishikawa

    (@hissy)

    add_theme_support( 'menus' );

    これは明らかに不要ですね。register_nav_menusの内部で呼ばれていますので、むしろそうでない場所で使うべきではありません。Codexにもそう書いてありますので、本に書いてあるとしたら間違った記述だと思います。

    register_nav_menusは連想配列で書くべきです。

    register_nav_menus( array(
    	'header-navi' => 'ヘッダーのナビゲーション',
    	'header-sub-navi' => 'グローバルナビゲーション'
    ) );

    wp_nav_menuの書き方はnobitaさんのおっしゃるとおりです。wp_nav_menu(‘theme_location=header_sub_navi’) のようにクエリ文字列として渡す場合は、=の前後にスペースは不可、ハイフンもダメだと思います。

    wp_nav_menu( array( ‘theme_location’ => ‘header-sub-navi’ ) ); の様に連想配列として渡す場合はハイフンを含んでも大丈夫です。

    トピック投稿者 kazuvegas

    (@kazuvegas)

    みなさん、ありがとうございます!!

    おかげで解決しました。

    まだcodex見ても、「?」なことも多いのですが、みなさんのメッセージのおかげでもっと勉強してみたくなりました。

    今後ともよろしくお願いいたします!(^^)!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタムメニューでグローバルナビやヘッダーナビ、フッターを管理した」には新たに返信することはできません。