Habe gerade im WordPress-Codex gesehen, dass die das Beispiel selber mit abschließendem Komma bringen.
Ich war nur drauf gekommen, weil es bei mir schon öfter an solchen Winzigkeiten gelegen hatte …
Nächster Schritt: Lass mal die Angaben 'custom_theme' weg. Also so:
function custom_theme_setup() {
add_theme_support( 'menus' ); // Obwohl nicht benötigt; Kein Unterschied ob mit oder ohne diese Zeile
register_nav_menus( array(
'primary' => __( 'NavigationMenu' ),
'shop' => __( 'ShopMenu' )
) );
}
add_action( 'after_setup_theme', 'custom_theme_setup' );
Alles anzeigen
Diese Angabe bezieht sich, soweit ich das verstehe (besser Wissende bitte gerne korrigieren!) auf eine theme_textdomain, die vorher eingebunden sein muss – hast du? Diese Textdomain brauchst du nur, wenn dein Theme übersetzbar sein soll …
Und in deinem html ist mir noch aufgefallen, dass du die erste Navigation in eine ul-Liste packst. Absicht? Weil, WordPress wird die Navigation selber auch in einer ul-Liste ausgeben, du hast dann eine verschachtelte Liste. (Und es könnte im Falle des ersten eigenen Navigationsmenüs auch ein CSS-Problem sein, dass so tief verschachtelt über CSS ausgeblendet wird.)
Nimm mal die Webmasterkonsole oder Firebug an die Hand und untersuche, was WordPress ausgibt.
Dass das WordPress-Standard-Menü nicht mehr ausgegeben wird, sobald du dein eigenes mit der entsprechenden Position im Theme verknüpfst, ist normal, das ist das Fallback innerhalb wp_nav_menu();
Gruß
helix