メニューの表示名の変更、使用しないメニューの完全な廃止に関するカスタマイズです。ほぼ同じ作業となるため同じページで解説しています。
ケース1: メニューの表示名を変更したい

mosir は子テーマでのカスタマイズを前提としているテーマです。このため、メニューの管理画面内での表示名は「ヘッダ: メニュー 1」のような、外観と結びつかない名称となっています。
メニューの使用状況によっては2を使用しないといった状況が発生し、連番となっている名前が気になる場合があります。そのような場合は名称を変更できます。
ケース2: メニューを廃止したい

サイトの構成によっては、まったく使用予定がないメニューが出てきます。
不要なメニューを管理画面に残すと公開後にメニューの表示位置を誤って崩れてしまう事故が発生することがあります。そのような場合は、定義済みのメニューを無効化することができます。
1. functions.php を複製する
functions.php テンプレートを、 mosir コアから利用中の子テーマに複製してください。
2. メニューIDを調べる
下記リンク先を参照し、変更したいメニューの「メニューID」を調べてください。
3. メニューの定義を変更する関数をフックに追加する
変更の場合
functions.php に以下のフックを追加してください。
unregister_nav_menu() で一旦メニューを未定義状態にしてから、 register_nav_menu() でまったく同じメニューIDで定義し直すと、名称を変更した状態になります。
if ( ! function_exists( 'mytheme_custom_nav_menu' ) ) :
/**
* Rename the menu
*
* @return void
*/
function mytheme_custom_nav_menu() {
unregister_nav_menu( 'header_nav_01' );
register_nav_menu( 'header_nav_01', '新しいメニュー名' );
}
endif;
add_action( 'after_setup_theme', 'mytheme_custom_nav_menu', 20 );
削除の場合
functions.php に以下のフックを追加してください。
unregister_nav_menu() のみを実行します。以下の例ではすべてのメニューが無効化されます。
if ( ! function_exists( 'mytheme_unredistar_nav_menu' ) ) :
/**
* Remove the all menus
*
* @return void
*/
function mytheme_unredistar_nav_menu() {
unregister_nav_menu( 'header_nav_01' );
unregister_nav_menu( 'header_nav_02' );
unregister_nav_menu( 'header_nav_03' );
unregister_nav_menu( 'header_nav_04' );
unregister_nav_menu( 'footer_nav_01' );
unregister_nav_menu( 'footer_nav_02' );
unregister_nav_menu( 'drawer_nav_01' );
unregister_nav_menu( 'drawer_nav_02' );
unregister_nav_menu( 'sticky_nav' );
}
endif;
add_action( 'after_setup_theme', 'mytheme_unredistar_nav_menu', 20 );
functions.php を更新後、カスタマイズ画面を再読込して表示を確認してください。
注意点
- アクションフック
add_action()を実行する際は、第三引数に20以上の数字を指定してください。この数字がないと mosir コアの方が優先され、変更が反映されません。 - mosir に限らず、どのテーマでも可能なカスタマイズですが、ドキュメントに記載されているメニューが存在しなくなってしまうので、CMSの構築担当者が変わったときなどに混乱を招く場合があります。カスタマイズは自己責任でお願いします。
