今回はWordPressのメニュー機能で管理できるソーシャルメディアメニューを作ってみたいと思います。
WordPress管理画面の【外観】から【メニュー】という項目内にてナビゲーションを始めとするメニューを管理することができます。必要に応じて項目を増やしたり減らしたり、必要な内容だけのメニューがカスタマイズして作ることができる機能です。
こちらの機能を利用して今回はTwiterやFacebookをはじめとしたソーシャルメディアボタンをメニュー機能の設置から実装までをご説明します。
functions.phpにメニューを追加する
まずはfunctions.php
にてソーシャルメディアメニューを新設します。
51行目あたりにこのような記載があります。
// This theme uses wp_nav_menu() in one location. register_nav_menus( array( 'primary' => __( 'Primary Menu', 'olein' ), ) );
こちらに、
'social' => __( 'Social Menu', 'olein' ),
を既存コードの下にでも追加します。
管理画面での設定
WordPress管理画面から【外観】>【メニュー】の【位置の管理】を選択します。するとこのような画面が表示されます。
先ほどfunctions.php
に記述した内容が反映されていることが確認できます(テーマ位置:Social Menu)。こちらの右「新しいメニューを使う」をクリックし、ソーシャルメニューを作成していきます。
「メニューの名前」にSocial Menuとし、左側【固定ページ】【リンク】【カテゴリー】とある中から【リンク】を選びます。
URLにリンク先URLを、リンクテキストにはサービスの名前(メニューに表示される文言)を入力します。
必要な項目を入力し終えたら、【テーマの位置】が【Social Menu】になっていることを確認して【メニューを保存】します。
template-tags.phpを編集
inc
フォルダ内にあるtemplate-tags.php
の最下部にファンクションを追加します。
function my_simone_social_menu() { if ( has_nav_menu( 'social' ) ) { wp_nav_menu( array( 'theme_location' => 'social', 'container' => 'div', 'container_id' => 'menu-social', 'container_class' => 'menu-social', 'menu_id' => 'menu-social-items', 'menu_class' => 'menu-items', 'depth' => 1, 'fallback_cb' => '', ) ); } }
パラメータのそれぞれの役割はこちらを参照してみてください。
テンプレートタグ/wp nav menu – WordPress Codex 日本語版
このように設定しておくことで、social
というメニューを設定通りに書き出してくれます。
では次に実装していきます。こちらのファンクション名をコピーしておきましょう。(上の例で言うとmy_simone_social_menu()
)
header.phpを編集
では、実装していこうと思います。
header.php
内にナビゲーションメニューを読み込んでいる箇所を探します。すると、47行目あたりにこのような記述があるかと思います。
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
この部分がprimary
という名前のメニューを読み込んでいる場所になります。この下に先ほど作成したソーシャルメディアボタンのメニューを追加します。
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?> <?php my_simone_social_menu(); ?>
これで実装は完了です。
動作確認
ブラウザで表示を確認してみましょう。このようになるかと思います。
このようにメニューの右側に続くような形で【Twitter】【Facebook】のソーシャルメディアリンクが作成されているのが確認できます。
まとめ
この方法を活用すると、ソーシャルメディアボタンも自在に追加・修正できるようになりますし、メニュー機能自体を自在に扱えるようになりますね。参考になれば幸いです。