WordPressのwp_nav_menuタグのカスタマイズ

板橋区でWordPress構築をがんばっている、スタジオカッツェの竹上です。

WordPressには、外観>メニューからメニューの変更をできるようにするwp_nav_menu()というテンプレートタグがあります。

グローバルナビゲーションやフッターで使う事が多いと思いますが、そのまま使うと、ulやliタグしか使えなかったり、少々不便な所があります。

ある案件で、dt・ddで出力したかった時のカスタマイズ方法をご紹介します。

//$test_menuでメニューの内容を受け取る
$test_menu = wp_nav_menu(
	array(
		'menu'  => 'G-nav', //該当するメニュー名を入れます。
		'items_wrap' => '%3$s',//メニュー項目をかこむタグを除外したい場合は%3$sを記述します。
		'container' => false ,//コンテナをなしにする場合は、falseを明記する必要があります
		'echo' => false,//メニューをPHPの値で返すfalseにします
	)
);
//str_replaceでliの閉じタグをddに変更する
$test_menu = str_replace("li>", "dd>", "$test_menu");

//str_replaceでliの開始タグをddに変更する
$test_menu = str_replace("<li", "<dd", "$test_menu");

//echo で変更したメニューのhtmlを出力する
echo $test_menu;

以上の記述で、ulで囲まず、liではなく任意のタグで出力することができます。

メニューをli以外で出力したい事はあまりないかもしれませんが、ご参考まで。

Leave a Comment