Wie zählt man die Nav-Menüpunkte?

Ich erstelle einen benutzerdefinierten Walker für mein Navigationsmenü. Das Ziel besteht darin, das Menü wie folgt in Spalten aufzuteilen:

Bildbeschreibung hier eingeben

Ich kann leicht feststellen, wo ich in der Liste bin, indem ich $item->menu_order . Was ich nicht weiß ist, wie viele Artikel im Menü insgesamt sind.

Wie kann ich das aus dem Inneren des Rollators herausfinden?

Aktualisiert:

Ich weiß, dass es mehrere andere Möglichkeiten gibt, Spalten zu erstellen. Alle haben jedoch ihre Nachteile:

  1. CSS schwebt. Wie unten von @sagive vorgeschlagen, könnte dies durch Floating aller Listenelemente erreicht werden. Das Problem ist, dass die Liste die Reihenfolge ändert. Anstatt in der ersten Spalte nach unten zu gehen und dann zur zweiten Spalte zu wechseln, würde die Liste über alle vier Spalten in der ersten Zeile und dann über alle vier Spalten in der zweiten Zeile gehen. Dies verwirrt die Reihenfolge.

  2. CSS-Spalten. Das ist fast die perfekte Lösung. Es wird mir genau geben, was ich will – außer dass IE es überhaupt nicht tut. Sogar auf IE 9. Das macht es für eine Mainstream-Website unbrauchbar.

  3. jQuery. Mit etwas clientseitigem Javascript konnte ich die Liste hacken und es so gestalten, wie ich es möchte. Das ist aber chaotisch, und es bricht für Leute, die behindert sind.

  4. PHP. Dies ist die Methode, nach der ich in dieser Frage frage. Ich zerlege die Liste in vier separate ungeordnete Listen, lade jedes in html aus und verwende dann CSS, um die Listen zu floaten, um vier verschiedene Spalten zu bilden. Es mag schwierig sein, in PHP zu produzieren, aber das Ergebnis sieht für alle Browser gleich aus. Das ist die beste Option, glaube ich.

Lösung:

Für diejenigen, die folgen können, hier ist der Code, den ich schließlich verwendet habe, um die Antwort zu bekommen:

 // The menu handle from the register_nav_menu statement in functions.php $theme_location = 'my-menu-handle'; $theme_locations = get_nav_menu_locations(); $menu_obj = get_term( $theme_locations[$theme_location], 'nav_menu' ); // Echo count of items in menu echo $menu_obj->count; 

Solutions Collecting From Web of "Wie zählt man die Nav-Menüpunkte?"

Rufen Sie wp_get_nav_menu_object auf, um ein wp_get_nav_menu_object zu erhalten, in dem Sie die Anzahl der Elemente für dieses Menü wp_get_nav_menu_object .

Beispiel:

 // Get menu object $my_menu = wp_get_nav_menu_object( 'your-menu-name-or-slug' ); // Echo count of items in menu echo $my_menu->count; 

Ich hoffe, das hilft.

Ich weiß, dass Sie bereits eine Lösung gefunden haben und nicht wissen, ob Sie genau danach suchen, aber ich habe vor einiger Zeit ein Plugin geschrieben, um es auf der Website eines Kunden zu verwenden. Es erstellt classn für jedes Menü, Untermenü und Menüelement . Es heißt Advanced Navigation Menus. Wenn Sie es am Ende verwenden, zögern Sie nicht, mir Feature-Anfragen zu senden.

Denken Sie nicht (und tut mir leid, wenn ich unhöflich bin), dass es viel einfacher und einfacher ist
einfach schweben: links; all das “li” und legte sie in ein div damit
Struktur backgroung als Bild?

Beispiel:

   

Ich denke, das wäre viel einfacher zu implementieren – aber .. ich weiß, dass nicht genau das, was Sie nach einem harten Blick manchmal helfen 🙂

Warum nicht einfach die function array_chunk () benutzen?

Angenommen, Sie haben ein Array von fertigen

  • -Tags erstellt, könnte Ihr Code zum Teilen und Anzeigen wie folgt aussehen:

     $columns = array_chunk( $myArray, 4 ); foreach ( $columns as $column ) { echo '
  • ' . $column . ''; }