ウィジェットのカスタムメニューのタイトルは、ウィジェットのタイトルフィールドに入力した値が表示されますが、
メニューを作成したときの、メニュー名を表示できればメニューの変更に伴ってタイトルも自動的に変更することができます。
テンプレートに関数を記述して、タイトルを動的に設定する方法
$nobita_location= 'primary'; /* location の menu idの取得 */ $nobita_menus = get_nav_menu_locations(); $nobita_menu_id= $nobita_menus[$nobita_location]; /* menuのデータを取得 */ $nobita_menu_object= wp_get_nav_menu_object( $nobita_menu_id ); printf( '<h2>%1$s</h2>', $nobita_menu_object->name ); wp_nav_menu( array( 'theme_location' => $nobita_location, 'menu'=> 'primary' ) );
フィルタを使って、ウィジェットのタイトルを動的に切り替える方法
functions.phpに記述します。
add_filter( 'widget_title', 'dinamic_menu_widget_title', 10, 3 ); function dinamic_menu_widget_title( $title, $instance , $id_base ){ if( $id_base== 'nav_menu' && empty( $title ) ){ $menu_object= wp_get_nav_menu_object( $instance['nav_menu'] ); return esc_html( $menu_object->name ); } return $title; }