WordPress bileşen panelinde menüleri istediğiniz yere yerleştirebilirsiniz. Fakat menü yöneticisi ile oluşturulan bir menüyü manuel, yani kodla ekrana için aşağıda yazdığım kodu kullanabilirsiniz. Genel olarak header.php dosyasındaki ilgili dynamic_sidebar kodunun çevresine bunu yerleştirebilir kafanıza göre yeniden tasarlayabilirsiniz.

Kısaca koddan bahsetmek gerekirse;  wp_get_nav_menu_items ile ilgili menünün tüm elemanlarını çağırıp get_sub_items ile alt menüsünün olup olmadığına bakıyoruz ve farklı bir css ile görüntülüyoruz. Tabi bu alt seçeneklerin de alt menüsü olabilir. Aşağıdaki kod sadece 3 seviye derine iniyor. Tasarım olarak buradaki görünümü kullandım. Siz de aynısını (mega menü deniyor) kullanmak isterseniz css dosyasını dahil etmeyi unutmayın.

function get_sub_items($items, $parent_id)
{
	$ret = array();
	foreach ( $items as $item )
		if ($item->menu_item_parent == $parent_id)
			$ret[] = $item;
	return $ret;
}

$menu_items = wp_get_nav_menu_items('10');
echo "<ul class='nav'>";
foreach ( $menu_items as $item_l1 )
{
	if ($item_l1->menu_item_parent == 0)
	{
		// Level-1
		echo "<li>";
		echo "<a href='#'>".$item_l1->title."</a>\n";
		echo "<div>";

		// Level-2
		$sub_1 = get_sub_items($menu_items, $item_l1->ID);
		if (count($sub_1))
		{
			foreach($sub_1 as $sub1_item )
			{
				// Level-3
				$sub_2 = get_sub_items($menu_items, $sub1_item->ID);
				if (count($sub_2))
				{
					echo "<div class='nav-column'>";
					echo "<h3>".$sub1_item->title."</h3>\n";
					echo "<ul>";
					foreach($sub_2 as $sub2_item )
					{
						echo "<li><a href='".$sub2_item->url."'>".$sub2_item->title."</a></li>\n";
					}
					echo "</ul>";
					echo "</div>";
				}
			}
		}
		echo "</div>";
		echo "</li>";
	}
}
echo "</ul>";

CEVAP VER

This site uses Akismet to reduce spam. Learn how your comment data is processed.