Мега меню для WordPress без плагинов
проверка на содержание пунктами меню CSS-класса «has-mega-menu»
если да, то создаем новую область виджета для этого пункта меню
function wpmm_init () {
$location = ' mega_menu ' ;
$css_class = ' has-mega-menu ' ;
$location = get_nav_menu_locations();
if ( isset ( $location [ $location ])) {
$menu = get_term ( $location [ $location ], ' nav_menu ' );
if ( $items = wp_get_nav_menu_items ( $menu -> name )) {
foreach ( $items as $item ) {
if ( in_array ( $css_class , $item -> classes )) {
register_sidebar ( array (
' id ' => ' mega-menu-widget-area- ' . $item -> ID ,
' name ' => $item -> title . ' Mega Menu' ,
));
}
}
}
}
}
add_action ( 'widgets_init' , 'wpmm_init' );
но по выходу выпадает ошибка по : Illegal offset type in isset or empty in
не понимаю как исправить
Ответы (1 шт):
Автор решения: Stas Golubev
→ Ссылка
Ошибка была в синтаксисе имени и id
'name' => sprintf(__($m_title . 'Мега-меню')),
'id' => "mega-menu-widget-area-$m_id",