カスタムメニューをショートコードで表示する方法
備忘録。WordPressで作成したカスタムメニューをショートコードで実装できるようにする方法です。
通常はwp_nav_menuでカスタムメニューをページ内に表示できますが、ページ内に個別に表示したい場合などは、ショートコードで直接記入する方法が便利です。
カスタムメニューの作成
まずは管理画面で、実装するカスタムメニューを作成します。
管理画面の「概観」に「メニュー」がない場合は、以下をfunctions.php
に追加します。
<?php add_theme_support( 'menus' ); ?>
例として「test01」というカスタムメニューを作成しました。
functions.phpの修正
カスタムメニューの準備ができたら、カスタムメニューをショートコードで実装するための設定をfunctions.php
に追加します。
<?php
//custom_menu
function single_page_custom_menu() {
return wp_nav_menu( array('menu' => 'test01', 'echo' => false));
}
add_shortcode("customenu", "single_page_custom_menu");
?>
menu
に作成したカスタムメニュー名を記入します。customenu
が、ショートコードで表示する文字列です。
下記のショートコードをページ内に記入でカスタムメニューを実装する事ができます。
[customenu]
カスタムメニューが複数ある場合
functions.php
を下記のように変更すれば、ショートコードに記入したカスタムメニューを表示することができます。カスタムメニューが複数ある場合は、こちらの方法がよいかもしれません。
<?php
//custom_menu
function single_page_custom_menu($atts, $content = null) {
extract(shortcode_atts(array('menu' => '', 'echo' => true), $atts));
return wp_nav_menu( array('menu' => $menu, 'echo' => false));
}
add_shortcode("customenu", "single_page_custom_menu");
?>
ショートコード内に、表示したいカスタムメニュー名を記入します。
[customenu menu="test01"]
通常カスタムメニューを表示する<?php wp_nav_menu(); ?>が使えないときにも、助かる方法です。