【賢威カスタム】カスタムフィールドを使用してWordPressのカスタムメニューにicon設定項目を追加する方法メモ、賢威カスタムはページ下部で解説します。
通常メニューの出力はwp_nav_menu関数を使用してメニューを表示することが多い。しかしこれだとカスタムフィールド などの追加ができない?
<?php wp_nav_menu( array('メニュー名' )); ?>
wp_get_nav_menu_items関数をforeachで回すことで、menu itemに設定したカスタムフィールドを取得、出力することができる。
<?php
$main_menu = wp_get_nav_menu_items(‘メニュー名, array());
foreach($main_menu as $menu){
echo '<li><a href="'.$menu->url.'">'.$menu->カスタムフィールド 名(下の場合だったらicon).’’.$menu->title.'</a></li>';}
?>
入力欄がこんな感じで追加されます。
参考
賢威のグローバルナビにfont-awesomeアイコンを出力する
当サイトで採用しているような賢威のグローバルナビにfont-awesomeアイコンを出力してみます。
1アイコン情報の入力
アイコンはフォントオーサムで設定します(画像も可)カスタムフィールド(プラグイン:Advanced Custom Fields)を使用してグロナビ メニューにアイコン設定フォームを追加します。
カスタムフィールドの新規作成>ルール>表示する条件 menu item > グローバルナビゲーション(またはメニュー名)で新規作成します。
フィールド名はお好みで設定します(今回はiconと設定しました。)
するとメニュー設定画面にicon設定フォームの設置が完了します。入力は完了です。
2賢威テーマに出力
次は入力したテキストデータをテーマに出力します。メニューを表示しているcssのセレクタは
<ul id="menu" class="keni-gnav_cont">
となっているのでテーマファイル内で検索をしますとheader.php内にあることがわかります。
子テーマで編集する場合はheader.phpをアップロードして編集します。
<ul id="menu" class="keni-gnav_cont">
<?php
wp_nav_menu( array(
'theme_location' => 'gnav',
'menu_id' => 'gnav',
'menu_class' => 'gnav',
'container' => '',
'items_wrap' => '%3$s',
) );
?>
<li class="menu-search"><?php get_search_form(); ?></li>
</ul>
この部分がグローバルナビを出力している箇所になります。
こちらで説明している通り、wp_nav_menuではカスタムフィールド を設定することができないので、
wp_get_nav_menu_items
を使用します。
<ul id="menu" class="keni-gnav_cont">
<?php
$main_menu = wp_get_nav_menu_items(‘global_navi, array());
foreach($main_menu as $menu){
echo '<li><a href="'.$menu->url.'">'.$menu->icon.''.$menu->title.'</a></li>';}
?>
</ul>
既存のソースコードを非表示にして上記コードを追加します。(global_navi→メニュー名・$menu->icon→カスタムフィールド 名)
出力が完了しました。