Support » Allgemeine Fragen » target=“top“ im Menü
target=“top“ im Menü
-
Hallo,
ich muß bei einigen Menüpunkten (Hauptmenü) target=“_top“ einfügen.
Target =_blank“ gibt es ja (Haken bei „Link in einem neuen Tab öffnen“ setzen). Ich benötige es aber für target=“_top“.
Hat jemand eine Idee wie ich das realisieren kann?
-
von ‚visuell‘ zu ‚text‘ wechseln und da in den Quelltext rein schreiben.
Vielen Dank für deine Antwort, aber bei dem Menüpunkten des Hauptmenüs (Design -> Menüs) kann man leider nicht von visuell zu text wechseln.
Design > Menüs > Menü erstellen/auswählen > Individuellen Link einfügen > http:// ersetzen mit #top, Linkbezeichnung „nach oben“ eingeben, zum Menü hinzufügen, Menü speichern, ggf. noch als Wigdet „Navigationsmenü“ dem Widgetbereich der Fußzeile hinzufügen.
Es gibt einige Plugins, die den „nach oben“-Link mit einer sanften Scroll-Annimation (jQuery/JavaScript) versehen.
Danke, aber ich möchte keinen Link nach oben einfügen.
target=“_top“ ist kein html-Element für einen „nach oben“-Link, sondern das target-Attribut legt die Zielfensterbasis eines Verweises fest (ganzes Fenster) genauso wie der fest hinterlegte „Link in einem neuen Tab öffnen“ (neuer Tab oder Fenster) auf der Seite.
Und da muße ich für einen Navigationspunkt das target-Attribut target=“_top“ festlegen, kein scroll-Element.
Beispiel:
a href=“http://www.example.com/besipiel/“ target=“_top“>Ausdruck</a- Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von weitms.
Ups, peinlich … da habe ich etwas kräftig durcheinander gebracht. Entschuldigung.
Allerdings werden iframes nur noch äußerst selten eingesetzt, die Verwendung des Linkziels
target="_top"
ist entsprechend selten.Die Entwickler haben sich entschieden, für eigene Navigationsmenüs nur das Linkziel
target="_blank"
anzubieten, dass du hinzufügen kannst, wenn du zuerst das Auswahlfeld im Pulldownmenü „Ansicht anpassen“ (oben rechts) eingefügt hast. Der damals Leitende Entwickler Andrew Nacin hat eine Funktion angeboten, mit der du allen Links, für die nicht bereitstarget="_blank"
gesetzt ist, das Attributtarget="_top"
hinzufügen kannst:function nacin_filter_menu_target_sorry_world( $menu_item ) { if ( ! is_admin() && empty( $menu_item->target ) ) $menu_item->target = '_top'; return $menu_item; } add_filter( 'wp_setup_nav_menu_item', 'nacin_filter_menu_target_sorry_world' );
Als Workaround kannst du diese Funktion so umwandeln, dass statt des Attributs
target="_blank"
das Attributtarget="_top"
verwendet wird:function nacin_filter_menu_target_sorry_world( $menu_item ) { if ( ! is_admin() && '_blank' == $menu_item->target ) $menu_item->target = '_top'; return $menu_item; } add_filter( 'wp_setup_nav_menu_item', 'nacin_filter_menu_target_sorry_world' );
Du könntest also in Design > Menüs unter Ansicht anpassen (oben rechts) das Feld „Linkziel“ aktivieren und anschließend bei den gewünschten Links ein Häkchen unter „Link in einem neuen Tab öffnen“ setzen. Die zuletzt genannte Funktion ersetzt
_blank
mit_top
.Für weitergehende Änderungen am Navigationsmenü müsstest du einen „Custom Walker“ programmieren, was hier etwas den Rahmen sprengt.
Hallo vielen Dank für deine ausführliche Antwort 🙂
Habe ich das richtig verstanden, dass ich den Quellcode austausche und dann steht mir bei der Navigation target = ‚_top‘ und nicht mehr target = ‚_blank‘ zur Verfügung?
Oh. Das wäre ja auch nicht der Weg, denn ich benötige beide Möglichkeiten…
target = ‚_blank‘ wird ja auch oft benötigt.
Kann man target = ‚_top‘ nicht als zusätzliches Feld ergänzen?
Ich kann das leider nicht.
Wäre das sehr aufwendig?Mit der Funktion kannst du auch einzelnen Menü-Einträgen
target="_top"
zuweisen:function weitms_filter_menu_target( $menu_item ) { $pages = array( 'Impressum', 'Datenschutzerklärung', 'AGB' ); if ( ! is_admin() && empty( $menu_item->target ) ) { if ( in_array( $menu_item->title , $pages ) ) { $menu_item->target = '_top'; } } return $menu_item; } add_filter( 'wp_setup_nav_menu_item', 'weitms_filter_menu_target' );
In Zeile 2 werden die Seitentitel aufgeführt, für die das Linkziel hinzugefügt werden soll, hier also Impressum, Datenschutzerklärung und AGB. Dabei wird der „Angezeigte Name“ der Links verwendet; wenn du eine Seite „Allgemeine Geschäftsbedingungen“ erstellst, im Menü aber als angezeigter Name das kürzere „AGB“ einfügst, fügst du in Zeile 2 auch „AGB“ ein. Das Feld „Seite in neuem Fenster öffnen“ darf nicht angeklickt sein, da der Link nur ein Linkziel – _top oder _blank – haben kann.
Die Funktion solltest du in einem Child Theme einfügen oder du verwendest das Plugin Code Snippets und erstellst für den Code ein neues Snippet.
Hilft dir das weiter?Klasse, es funktioniert! Vielen Dank für deine Hilfe!!!
- Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von weitms.
- Das Thema „target=“top“ im Menü“ ist für neue Antworten geschlossen.