【WordPress】 カスタムメニュー機能

wordpress

カスタムメニュー設定手順

functions.php

以下のコードをfunctions.php に記入し、カスタムメニュー機能を有効にします。

function my_menu_init() {
    register_nav_menus( array(
        'main-menu' => 'Main Menu',
        'footer-menu' => 'Footer Menu',
    ) );
  }
  add_action( 'init', 'my_menu_init' );

ここで記載した’main-menu’ は、カスタムメニューを使用する場所をテンプレート内で指定するために使用。

‘Main Menu’は、管理画面上にメニューの位置として表示されます。

管理画面でメニューを作成

管理画面「外観」>「メニュー」で、メニューを作成します。

メニュー設定 で、functions.phpで登録したメニューの位置’Main Menu’を選択。

header.php

表示させたい部分に以下のコードを記載します。

<?php 
  wp_nav_menu(
   array(
	'theme_location'=>'main-menu',
	'container'=>false
	)
   );
?>

※’container’=>false は出力されるulタグをdivタグで囲まれないようにするための指定。

設定されると、以下のような構造のコードが出力されます。

<ul class="menu">
  <li class="menu-item"><a href="">メニュー</a></li>
  <li class="menu-item"><a href="">メニュー</a></li>
  <li class="menu-item"><a href="">メニュー</a></li>
</ul>

※aタグにはクラスが割り当てられない。ここで割り当てられるクラスを参考にしてコーディングしておくこと。

カスタムメニューのアレンジ

個別にクラスを追加する

メニューに個別にcssクラスを追加することもできます。

管理画面右上にある、「表示オプション」というタグをクリックし、

「詳細メニュー設定を表示」の中から、cssクラスにチェックを入れると、個別にクラスを追加できます。

span要素を追加する

デザインの都合上メニュー名をspan要素で囲む必要がある場合などは、header.phpでメニューを呼び出す際、以下のような書き方ができます。

(<li><a href=””><span>メニュー</span></a></li> のようにしたい場合)

<?php 
wp_nav_menu(
  array(
  'theme_location'=>'primary',
  'container'=>false,
  'link_before'=>'<span>',
  'link_after'=>'</span>'
  )
  );
?>

※wp_nav_menuを利用してメガメニューにする方法は以下のブログに詳しく書かれていました!ご参考を!

wordpress
スポンサーリンク
Web Parts Box
タイトルとURLをコピーしました