カスタマイズ

Customize

メニューの表示名を変更したい・メニューを廃止したい

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

ケース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の構築担当者が変わったときなどに混乱を招く場合があります。カスタマイズは自己責任でお願いします。