Skip to content

Total Theme: Overwrite Menu Items by class

Better approach


//THEME - MEGAMENU - ICONBOX
function add_nav_description( $item_output, $item, $depth, $args ) {
    $menu_name = 'MAIN';
	//print_r($item);
    if ( !empty( $item->description ) && $menu_name == $args->menu->name ) {
		
		$icon_id = get_post_meta( $item->ID, '_menu_item_totaltheme_icon', true );
		$icon_id = str_replace('id_', '', $icon_id);
		
       	$html = do_shortcode('[vc_row remove_bottom_col_margin="true"][vc_column][vcex_icon_box heading="' . $item->title . '" heading_type="div" image="' . $icon_id . '" url_wrap="true" onclick="custom_link" classes="menu-box" onclick_url="' . $item->url . '"]' . $item->description . '[/vcex_icon_box][/vc_column][/vc_row]');
		   
		$item_output = $html; //$item->title." ".$item->description.$icon_id;
		/*$item_output = str_replace(
            $args->link_after . '</a>',
            '<div class="menu-item-description">' . $item->description . '</div>' . $args->link_after . '</a>',
            $item_output
        );*/
    }
    return $item_output;
}
add_filter( 'walker_nav_menu_start_el', 'add_nav_description', 10, 4 );   

Old approach


// Override the menu item with the 'megamenu-template-1' class with a dynamic template
add_filter( 'walker_nav_menu_start_el', function( $output, $item, $depth, $args ) {

	//FORDERUNG
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-1', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="160"]</div>' );
	}
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-2', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="162"]</div>' );
	}
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-3', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="163"]</div>' );
	}

	//PROJEKTE
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-4', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="9032"]</div>' );
	}
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-5', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="9033"]</div>' );
	}
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-6', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="9034"]</div>' );
	}

	//ABOUT
	//leitbild
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-7', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="9123"]</div>' );
	}
	//team
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-8', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="9124"]</div>' );
	}
	//faq
	if ( isset( $item->classes ) && is_array( $item->classes ) && in_array( 'megamenu-template-9', $item->classes, true ) ) {
		return do_shortcode( '<div class="wpex-no-renaming">[wpex_template id="9125"]</div>' );
	}

	return $output;
}, 50, 4 );

An den Anfang scrollen