エディター

【WordPress】投稿にナビゲーションメニューを載せる (ショートコード)

この記事は最終更新から2年以上経過しており、内容が古い可能性があります

一部の投稿記事に 「共通のリンクメニューを載せたい」という案件がありまして。。。

メニューなら、一番簡単で扱いやすい wpのメニュー機能。
「これをショートコードにしちゃえれば、登録も出力も簡単楽ちんだ~!!」

プラグインもいいけど、これだけの為に探すのも面倒だし
大層なものじゃなければ、自作しちゃった方が「軽いし 早い」よね
という安直な思い付きです (笑

好きな投稿に入れたり、テンプレートにも載せられるので
「このページだけ違うメニューを使いたい」って時に、ぜひお試しくださいね

このページの目次
  1. メニュー ショートコードの作り方
    1. 1. 基本のコード(コピペはこちら)
    2. 2. ナビゲーションメニューの作成
  2. メニュー ショートコードの使い方
    1. 自作する際のご注意

メニュー ショートコードの作り方

functions.phpに下のコードをコピペすればOK。
後は、ナビゲーションメニューを作ればショートコードで呼び出せます。

ショートコードは、メニュー名で呼び出せるので、メニューを何個も作って使い分けもOK
便利ですよ~^^v

1. 基本のコード(コピペはこちら)

以下を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)); 
 }); 

2. ナビゲーションメニューの作成

【外観 → メニュー】 で、いつも通りにメニューを作成します。

メニュー ショートコードの使い方

 投稿 に書き込む場合のコード 
[my_menu menu='メニュー名'] 
template に書き込む場合のコード
<?php echo do_shortcode( ' [my_menu menu='メニュー名'] ) ?>

 menu=’メニュー名’  に、作成したメニュー名を入れて投稿の好きな部分に書けばOK!!
( 例: [my_menu menu=’Menu 1′] )

【 リンク付きのメニュー 】がリスト形式で表示されます。

自作する際のご注意

皆さんが書いているのでご承知だとは思いますが、、、

functions.php をはじめ、テンプレートに記入ミスをすると、痛い思いをする事があります。

最近は、Wordpressのテーマエディターでチェックしてくれますが
ミスによってはチェック漏れして、大々的にエラーメッセージが出たり、最悪白画面になる事もあります。

書き込む際は、コピペ漏れが無い事、既に書かれている内容 ( カンマ、?> )など消さない事、など、十分ご注意くださいませm(__)m