WordPress 本文にショートコードでメニュー簡単配置

技術メモです。WEBサイト制作者じゃない人には、申し訳ございません。

WordPress本文にショートコードを使ってどこにでもメニューを配置できる機能です。

まず、テーマの function.php の一番最後くらいに、以下のプログラムをコピペ。

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

そして本文に

[menu name="main-menu"]

と”main-menu”の部分を自分が WordPress で作成したメニューの名前に置き換え入力。メニューが、<ul><li> で表示されます〜。これは便利。

【引用元: Call a navigation menu using a shortcode

また、上記はメニューのデフォルト値が出力されますが。自分の場合は

function print_menu_shortcode($atts, $content = null) {
    extract(shortcode_atts(array( 'name' => null, ), $atts));
    return wp_nav_menu( array( 'menu' => $name, 'container_class' => 'embedded-menu-container', 'echo' => false ) );
}
add_shortcode('menu', 'print_menu_shortcode');

と return 文のところに、container_class をデフォルトでは、メニューの名前ごとにかわる CSS クラスを「embedded-menu-container」という CSS クラスに固定させ、本文に出力されるメニューの見せ方を一定にしています〜。