リニューアル案件の構築で親子関係をもつ固定ページがあったのですが、
グローバルナビに表示する程でもない・・・
メインである親ページに来たときに、サブページがあるのが分かればよい・・・
という内容だったので、
投稿内にカスタムメニューを表示しよう!!
ということになりました。
もちろん、
・親子ページ全てに静的リンクを作る
・テンプレートファイルに分岐を作って表示させる
色々と方法はありますが、
管理画面から変更したい
メニューの管理を簡単に
表示位置をある程度自由に
というご要望もあり、今回はカスタムメニューを作りつつ、
投稿(固定ページ)内にカスタムメニューをショートコードで出力する方法を採用しました。
目次
導入例
例えば、ページ階層が
・(親)会社概要 (about)
・(子)役員紹介 (about/officer)
・(子)沿革 (about/history)
・(子)代表メッセージ (about/message)
のような場合ですね。
それぞれのページに親子ページのナビゲーションを表示したい場合があると思います。
カスタムメニューを利用することで、担当者が更新や変更をしやすくなり、
ショートコードを利用することで、表示位置の変更も簡単に行えます。
※新規子ページを作ったらショトコードを追加しなくてはいけないというデメリットもありますが。
カスタムメニューをPHPで表示するには??
では、まずカスタムメニューについて。
カスタムメニューが利用できる環境であれば、
外観 > メニュー からカスタムメニューを作成できます。
導入例にならって「about」というメニューを作成したとします。
カスタムメニューが作れないんだけど??
という人はこちらの記事が参考になりそうです。
カスタムメニュー導入から、テンプレートへの記述の仕方もあって大変親切!
- 記事
- 固定ページでカスタムメニューを実装してみよう!
- URL
- [browser-shot width=”600″ url=”http://bashalog.c-brains.jp/14/06/25-150000.php”]
ショートコードを作るには??
まず、ショートコードを作るには、functions.phpに、以下のコードを追加します。
//ショートコード追加 function 関数名() { wp_nav_menu( array('menu' => 'カスタムメニュー名' )); } add_shortcode('ショートコード文字列', '関数名');
今回の導入例から、
//ショートコード追加 function aboutNavigation() { wp_nav_menu( array('menu' => 'about' )); } add_shortcode('aboutNav', 'aboutNavigation');
としてみます。
ショートコードでカスタムメニューを表示
あとは投稿内に
[aboutNav]
としてあげるだけですね!
出力されるコードを調整したい場合はコーデックス
を参考にして下さい!