WordPress
BLOG

【WordPress】メニューをショートコードで表示させる方法

WordPressで作成したメニューをショートコードで実装できるようにする方法です。
通常メニュー表示の<?php wp_nav_menu(); ?>が使えないときに便利かと。

※テーマ「LIQUID」のカスタマイズを想定しています。
※functions.phpで、すでにメニューが設定されていることを前提としています。

新規メニューを作成する

まず、普通にメニューを作成します。メニュー名も任意のものでOKです。

functions.phpを追加する

add_shortcode( 'my_menu', function($atts){ 
     $atts = shortcode_atts( 
         array( 'menu' => '' ), 
         $atts, 
         'my_menu' 
     ); 
     extract($atts); 
     return wp_nav_menu(array('menu' => $menu, 'echo' => false)); 
 }); 

‘my_menu’部分は任意の文字列でOKです。

ショートコードの呼び出し方

[my_menu menu='recruit-menu']

「my_menu」の部分がfunctions.phpで設定した’my_menu’の部分、「menu=’○○○○’」の○○○○部分にカスタムメニューでつけたメニュー名を入力します。

固定ページで呼び出すには上記のまま、phpファイルに入力する場合は下記で↓

<?php echo do_shortcode( "[my_menu menu='recruit-menu']" ) ?>

これで、メニューを変更すると自動的に表示内容も更新されて便利ですよ。