今回は、ナビゲーションメニューを表示させてみます。
本ブログでは、ヘッダー画像下に表示をしている ↑ コレ ですね。
(一般的には?) この位置のメニューは、グローバルナビ と言われる
ことが多いのではないかと思います。
まず、function.php にナビゲーションメニューを登録するコードを追加します。
//--- ナビゲーションメニュー追加 register_nav_menus(array('navbar' => 'ナビゲーションバー'));
register_nav_menus 関数は、テーマにナビゲーションメニューを
登録 (追加) してくれます。
パラメータには、メニューの slug を key に、説明を value にした連想配列の
配列 (二次元配列) を渡してやります。
複数のナビゲーションメニューを登録する場合は、以下のようになります。
//--- ナビゲーションメニュー追加 register_nav_menus( array( 'navbar1' => 'ナビゲーションバー1' , 'navbar2' => 'ナビゲーションバー2' ) );
register_nav_menus でメニューを登録すると、
管理画面 [外観 - メニュー] で メニューを編集する際に、「テーマの位置」 で
ここで作成したメニューを指定することができるようになったり、
「位置の管理」 タブで登録したナビゲーションにメニューを設定できる
ようになります。
次に、登録したナビゲーションメニューを実際に表示する HTML 要素を
テンプレートに記述します。
今回はヘッダー画像下に表示しますので、 header.php に
ナビゲーションメニュー表示を追記します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html <?php language_attributes(); ?>> <head profile="http://gmpg.org/xfn/11"> <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /> <title> <?php if (is_archive()) { wp_title('|', true, 'right'); } elseif (is_search()) { wp_title('-', true, 'right'); } elseif (is_404()) { echo '404 Not Found - '; } if (is_front_page()) { bloginfo('name'); } elseif (is_single() || is_page()) { wp_title(''); } else { bloginfo('name'); } global $page, $paged; if ($paged >= 2 || $page >= 2) { echo '-' . sprintf('%sページ', max($paged, $page)); } ?> </title> <meta name="viewport" content="width=1024, maximum-scale=1, user-scalable=yes"> <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="all" /> <?php wp_head(); ?> </head> <body <?php body_class(); ?>> <div id="container"> <div id="header"> <div id="header-image"> <?php if (get_header_image()) : ?> <img src="<?php header_image(); ?>" width="<?php echo get_custom_header()->width; ?>" height="<?php echo get_custom_header()->height; ?>" alt="" /> <?php endif; ?> </div> <div id="header-text"> <p class="sitename"><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></p> <h1 class="descr"><?php bloginfo('description'); ?></h1> </div> </div> <div id="navi"> <ul> <li><a href="<?php echo home_url();?>" title="トップページ">TOP</a></li> <?php wp_nav_menu(array('theme_location' => 'navbar')); ?> </ul> <div class="clear"></div> </div> <div id="wrapper"> <div id="side-left"> <?php get_sidebar('left'); ?> </div> <div id="main">
ハイライト表示している部分が今回の追記箇所です。
ここでは、固定で TOP へのリンクを表示し、その横に続けて
ナビゲーションメニューを表示するように配置しています。
ナビゲーションメニューの表示には、wp_nav_menu 関数を使用します。
> テンプレートタグ/wp nav menu – WordPress Codex 日本語版
パラメータには、「どのナビゲーションメニューを表示するか」 や
「ナビゲーションメニューを囲むタグ」 等々の挙動を指定する
連想配列を渡します。 ( 連想配列の各値はリファレンスを参照して下さい )
「どのナビゲーションメニューを表示するか」 というのは、
テーマ内の位置を示す theme_locaution に
register_nav_menus で登録した slug (key) を設定して指定します。
「ナビゲーションメニューを囲むタグ」 に関するパラメータを
指定しなかった場合、デフォルトでは
<div class=”menu”><ul><li> [メニュー1] </li>li>< [メニュー2] </li></ul></div>
のようなタグ構成で出力されます。
では、ナビゲーションメニュー用のスタイルを style.css に追記します。
/*----------------------------- ナビゲーションメニュー ------------------------------*/ #navi { position: relative; font-size: 12px; line-height: 16px; } #navi ul { position: relative; margin: 0px; padding: 0px; } #navi li { position: relative; float: left; display: inline; padding: 5px 10px 5px 10px; border-left: dotted 1px #cccccc; } #navi li li { border: none; } #navi li a { color: #333333; text-decoration: none; } #navi li a:hover { text-decoration: underline; }
追記する場所はどこでも問題ありませんが、
HTML 要素の位置的にはヘッダー領域の直後なので、
ヘッダーのスタイル設定の直後にでも
追記しておくのが分かりやすくていいでしょう。
これで、管理画面 [外観 - メニュー] で設定した
ナビゲーションメニューが表示できるようになりました。
やっぱりグローバルナビがあった方がカッチョいいですよね。
SEO 対策的にも良いはずですしね。
では今回はここまで。