Support » Allgemeine Fragen » Dynamischer Link (Dateiname) in globaler Navigation

  • Gelöst breet182

    (@breet182)


    Hallo Freunde,

    ich würde gerne in der globalen Navigation (also die über „Design-Menü“ oder „Design-Widget“ auf allen Seiten gleich eingefügt ist) einen Link ergänzt um den aktuellen Dateinamne einfügen:
    Also z. B. auf der Startseite.html –> Startseite-en.html
    Auf Kontakt.html –> Kontakt-en.html.

    Also immer der aktuelle Dateiname plus eine Ergänzung, die immer gleich ist. (aus der URL auslesen? $dateiname = basename($_SERVER[„PHP_SELF“]);)

    Gegoogelt habe ich bereits fleißig, aber bekomme es nicht hin. Sollte es mit dem PHP-Befehl oben zu lösen sein, habe ich absolut keine Ahnung, wie ich dann in einem Widget darauf zugreife.

    [Hintergrund: wie bereits angedeutet geht es darum, einen Button oben rechts einzufügen, mit dem die Sorache auf englisch gestellt werden kann. Schön wäre es eben, wenn der „Button“ oben rechts und nicht im Seiteninhalt auftaucht und wenn der „Button“ immer direkt die aktuelle Seite übersetzt. Plugin Lösungen usw. habe ich auch bereits lange nach gesucht, aber da ist nichts passendes dabei. Würde es lieber gerne händisch machen.]

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • $path = pathinfo(__FILE__);
    $file = $path[‚basename‘];

    gibt zumindest schon einmal index.php bzw. kontakt.php in $file aus.

    Ich habe aber immer noch keine Ahnung, wie soetwas in WordPress umgesetzt werden kann 🙁

    Moin breet,

    ich habe gerade keine Lösung auf deine Frage, aber Lösung für dein Problem. Wenn ich es richtig verstehe geht es darum, dass du eine mehrsprachige Seite haben willst und dass man über einen „Language Switcher“ in die jeweils andere Sprache wechseln kann. Darüber hinaus, wenn man auf „Seite X in Sprache 1“ ist, dass man damit auf „Seite X in Sprache 2“ kommt.

    Die Lösung deines Problems heißt:
    – Multisite machen
    – MultilingualPress nutzen

    # Multisite
    Mit der Multisite machst du aus deiner WordPress Installation ein sgn. Seiten-Netzwerk und kannst unendlich viele „Sites“ hinzufügen. In deinem Fall heißt das „unendlich viele Sprachen“: mache also pro Site eine Sprache.

    Der Vorteil ist, dass jede Sprache (als eigene Site) so schnell ist wie eine normale Site: wenn deine Seite also auch „rasend schnell“ ist, bleibt jede Site eben auch „rasend schnell“.

    Wenn die Sprachen aber auch getrennte Sites sind, fragst du dich sicherlich, wie dann bitte die Sites miteinander verknüpft sein sollen und noch konkreter: wie können einzelne Seiten bitte so miteinander vernetzt sein, dass ich nach dem Sprach-Switch eben auf der richtigen Seite bin? Gute Frage!

    # MultilingualPress
    ## Sites miteinander verknüpfen
    Für das Problem gibt es MultilingualPress. Mit MultilingualPress (MLP) kannst du jeder Site eine Sprache zuordnen und sagen, welche andere Site in deinem Netzwerk damit verknüpft sein soll. Diese Verknüpfung nennt man auch „Site Relation“. Gibt es eine Siterelation mit Sprachen, dann hast du auch direkt den „hreflang“-tag im Quellcode; also auch praktisch für Suchmaschinen.

    Wo:
    Vorbedingung 1: Multisite ist aktiv
    Vorbedingung 2: Das Plugin MultilingualPress ist installiert
    a) Netzwerkadministation / Sites / {meine site 1} –> edit klicken
    b) Auf den Tab „MultilingualPress“ gehen

    ## User weiterleiten via Browsersprache
    Zudem kannst du auch einen sprachbezogenen Redirect machen: hat also jemand Englisch als Browsersprache, könnte er direkt automatisch auf deine englische Seite geleitet werden. Das ist eine simple Checkbox.

    Wo:
    Auch auf dem Tab von MultilingualPress (siehe oben).

    ## Content miteinander verknüpfen
    Gibt es zwischen 2 oder mehr Sites eine „site relation“, dann siehst du beim Bearbeiten eines jeden Blogbeitrags oder einer Seite immer auch eine „Metabox“ (die Boxen, die im Backend von WordPress immer zu sehen sind) für eine Übersetzung. Im Gegensatz zur „site relation“ nennt man das eine „content relation“.

    a) hier kannst du aus Sprache 1 heraus auch direkt einen Entwurf für Sprache 2 machen und nach dem Speichern direkt auf den Entwurf für Sprache 2 wechseln

    b) hast du schon einen Inhalt auf der anderen Sprachseite, dann kannst du einfach einen anderen Inhalt suchen und als „Übersetzung meines/r aktuellen Beitrags/Seite“ auswählen.

    –> super toll, bisher ist dein Problem mit dem dynamischen Menü ja garnicht angesprochen worden, doof. Aber für eine Käsebrot braucht man nicht nur Käse, sondern auch Brot. Kommen wir also zum Käseteil der Schnitte.

    # Language Switcher in den Menüs
    MLP bringt ein weiteres Feature mit. Du hast zu diesem Zeitpunkt schon rein technisch den Seiten gesagt, dass sie Übersetzungen von einander sind, genau wie auch bei einer Teilmenge deiner Seiten und Beiträge. Was wir brauchen ist also ein Menü mit dem man zwischen Sprachen generell und zu spezifischen übersetzten Inhalten kommen kann.

    Netter Weise bringt MLP noch ein weiteres Feature mit: den Language Switcher für Menüs. Genau das, was du als „dynamisches Menü“ haben wolltest.

    Unter Design / Menüs kannst du links in der „Content Typ für mein Menü“-Sidebar nun auch „Sprachwechsler“ finden.
    Siehst du ihn aktuell nicht, ist er zwar da, aber nicht angezeigt: dann gehe links oben auf „Ansicht“ und aktiviere die Checkbox für den Sprachwechsler.

    Damit kannst also entweder ein Sprach-Switcher Menü selbst anlegen udn es an eine Menüposition schieben oder eben ein Menü erweitern um die Sprache.

    Der Sprachswitcher hat als Default-Verhalten, dass er auf die Startseite deiner anderen Sprache geht, wenn du entweder auf der Startseite bist oder ein Inhalt nicht verknüpft ist. Ist ein Inhalt verknüpft, dann geht er auch direkt zu diesem Inhalt und nicht auf die Startseite.

    # Weitere Inhalte für dich
    Ein Seiten-Netzwerk erstellen:
    https://codex.wordpress.org/Create_A_Network

    Das Plugin MultilingualPress:
    https://de.wordpress.org/plugins/multilingual-press/

    Marketing-Seite von MultilingualPress:
    https://multilingualpress.org/
    (nein, du brauchst da kein Geld ausgeben)

    Dokumentation von MultilingualPress:
    https://multilingualpress.org/docs/
    –> hier bitte nur MLP2 angucken (ist das öffentlich verfügbare Plugin)
    –> evtl. helfen dir auch die Beiträge unter Multisite 1×1 weiter

    Wow! Danke für die ausführliche Antwort und Hilfe. Das ist genau das was ich möchte. Über Multisite war ich beim googeln schon mal gestolpert. Das ganze erschien mir recht kompliziert und mir wurde der Vorteil gegenüber dem einfachen dublizieren jeder Unterseite auf nur einer „Site“ nicht ganz klar. In Kombination mit MultilingualPress scheint es dann ja aber genau zu meinem geünschten Ergebnis zu führen. Bin gerade dabei und werde noch weiter fleißig die Lösung lesen und versuchen umzusetzen 🙂
    Vielen Dank soweit schon mal 🙂

    Noch vergessen: du kannst die Namen in der Multisite natürlich frei wählen!

    ## Sprache als Subfolder
    Deine „Site 1“ kann ja gerne „domain.tld“ sein.

    Und wenn du die Installation als „Subfolder“ machst, dann kannst du für Englisch einfach „en“ als Sitename setzen. Dann wäre deine englische Seite auch direkt „domain.tld/en“.

    Raus kommt meistens hier:
    domain.tld (bspw. deutsch)
    domain.tld/fr
    domain.tld/it
    domain.tld/en

    ## Sprache mit eigener Domain
    Wenn du wie oben einfach die Site angelegt hast, bist du vielleicht irritiert, warum du nicht die Domain wechseln kannst: doch kannst du, aber erst in einem zweigen Schritt.

    Also erst einmal Subfolder aufsetzen, dann die Site bearbeiten: siehe da, du kannst die komplette Domain auch ändern aus bspw. „domain.com“ für Englisch.

    Raus kommt meistens:
    domain.de
    domain.fr
    domain.it
    domain.en

    ## Spezialfall: Subfolder auch für die erste Sprache
    Abgeleitet von der ersten Variante kannst du natürlich auch die erste Sprache als Subfolder machen. Das geht über ein sgn. „Redirection Theme“.

    1. Du machst für deine Domain dann den „Root Blog“ (also setzt damit die Multisite auf)
    2. Du kannst für alle deine Sprachen „/en“, „/de“, „/fr“ die jeweilige Site aufsetzen
    3. Du kannst dir ein Theme Anlegen (gibt’s Anleitungen zu Hauf)
    3.1 da brauchst du die style.css und die index.php
    3.2 in die index.php müssen dann die folgenden 3 Zeilen Code

    <?php
    // Do a redirect to the XYZ blog.
    wp_safe_redirect( get_home_url( 2, '/' ), 301 );

    ==> die „2“ musst du dann nur noch ersetzen zu der „Site ID“, die deine Seite im Netzwerk hat. Die findest du ganz einfach raus, indem du in „Netzwerk / Sites“ über die Sites drüber ‚hoverst‘.

    Das ist zwar nicht sehr merklich langsamer, aber führt aus extremer SEO-Sicht zu dem Umstand, dass ein französischer Browser bei Browser-Redirect:
    1. Auf deine Domain kommt mit Redirect-Blog
    2. Dann auf den ge-redirecteten Blog kommt (Ziel des Redirect Themes)
    3. Dann, wenn die Seite nicht fanzösisch ist, erst zu deiner FR-Site kommt

    ## Weitere „Brands“ oder „andere Themen“ in der Multisite
    Wie oben geschrieben kann man auch ganz andere Domains wählen und damit auch themenfremde Dinge in eine Multisite reinpacken. Das macht natürlich nur Sinn, wenn du einen hohen Überschneidungsgrad hast für „Redakteure“ oder „eingesetzte Plugins“ etc.

    –> aber du kannst mein-moped.com in 4 Sprachen und mein-walgesang-chor.net in 8 Sprachen parallel betreiben. Die relations setzt du ja mit MLP, wie auch die dazugehörigen Sprachen.

    ## Kommentar zu Domain-Mapping
    Willst du mehrere Domains nutzen, dann brauchst du NICHT das Plugin „WordPress MU Domain Mapping“: einfach wie oben beschrieben die Domain ändern nach dem Erstellen einer Site und die Domain auf deinen WordPress-Folder zeigen lassen. Gut ist.

    Viel Erfolg dir! 🙂

    Kurzes Feedback: die Seite macht jetzt genau das was sie soll 🙂 Auch wenn ich in meiner Panik nach PHP-Codes gefragt habe, führt dein beschriebener Weg absolut zur Lösung 🙂 Vielen Dank!

    • Diese Antwort wurde geändert vor 1 Jahr, 7 Monate von breet182.

    Gern geschehen!

    Vielleicht besuchst du ja mal ein WP Meetup in deiner Nähe und bringst Kekse mit 🙂

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • Das Thema „Dynamischer Link (Dateiname) in globaler Navigation“ ist für neue Antworten geschlossen.