Amazonランキング大賞2018

ナビゲーションメニューを記事中にショートコードで表示する方法

WordPressのメニュー機能で作成したナビゲーションメニュー、これを記事中の任意の位置に出力するショートコードを作成しました。

事前準備

functions.phpに下記のソースをコピペしてください。

functions.php
//=============================================
//
//	任意のナビゲーションメニューをショートコードで出力
//
//	[print_navmenu menu='メニュー名']
//=============================================
add_shortcode(
	'print_navmenu',
	function($atts){
		$atts = shortcode_atts(array(
				'menu' => ''	//メニュー名
			), 
			$atts,
			'print_navmenu'
		);
		extract($atts);
	
		return wp_nav_menu(array('menu' => $menu, 'echo' => false));
	}
);

使い方

メニュー作成

WordPress管理画面から、「外観」→「メニュー」で出力するメニューを作成します。

ショートコードで出力

記事投稿画面で出力したい位置にショートコードを記述します。

コード
[print_navmenu menu='メニュー名']

メニュー名には、出力したいメニュー名を記述します。
メニュー名はシングルクォーテーションかダブルクォーテーションで囲みます。

出力結果

このように<ul><li>のリストとして出力されます。
もちろんクリックすればメニューのリンク同様、反応します。

日本語でもOK

このようにメニュー名が日本語であってもOKです。
ただし、<ul><li>タグに自動的にメニュー名でclass名がつくのですが、日本語だとPunycodeに変換されてしまうので、リストを装飾するつもりの場合は、メニュー名はアルファベットにしておいたほうが楽だと思います。

参考 テンプレートタグ/wp nav menuCodex

1 Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です