Responsive - verschiedenen Bildschirmbreiten unterschiedliche Menüs zuweisen

  • Geht das? Die Frage scheint mir nicht abwegig, eine Lösung habe ich aber nicht gefunden :(

    Ich möchte bei meinem Theme in der Ansicht für "Mobil" ein anderes Menü angezeigt bekommen, als bei "Desktop".

    Sichtbarkeit und Aussehen des Menüs werden, logisch, per css-Klassen gesteuert.

    Hier ist der Code aus dem Header für den Aufruf des Menüs:

    HTML
    <div class="toggle">
      <a class="toggleMenu" href="<?php echo esc_url('#');?>"><?php esc_attr_e('Menu','lhw'); ?></a>
    </div>  <!-- toggle --> 
    <div class="sitenav">
      <?php wp_nav_menu(array('theme_location' => 'primary')); ?>
    </div>  <!-- site-nav -->

    Wir sehen, class="toggle" oben ist die Variante für kleine Bildschirme, darunter class="sitenav" steht für normal. Bei letzterem könnte ich 'primary' durch ein anderes per functions.php registriertes Menü ersetzen, 'footer' beispielsweise oder 'mobil' oder 'xyz'.

    Kann nun der php-code für das "toggle" so modifiziert werden, daß hier auch per 'theme_location' => 'blablabla' ein anderes als das primary-Menü aufgerufen wird? Leider reichen meine php-Kenntnisse dazu nicht aus.

    Grüße
    k.N.

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • (Okay, also ich löse das jetzt anders, daß ich verschiedene Menüpunte in "normal" und "mobile" sehe, mit css-Steuerung)

    Aber vielleicht kann mir jemand helfen; ich komme nicht dahinter, wie das Aufklappen des Menüs in der Mobile-Ansicht ( >999px) gelöst wird.

    Klar, es gibt die /style.css, es gibt eine /css/responsive.css, und das Menü und seine Variante wird in der header.php aufgerufen.

    Damit komme ich aber nicht weiter. Da fehlt mir was. Wieso hat das Menü nur eine bestimmte Höhe, warum klappt es nur zum Teil auf, so daß verdeckte Menüpunkte gescrollt werden müssen?

    Die Seite im Aufbau liegt auf http://pflegeteam.tagsucht.de
    Das Theme "lhw" ist ein umgemodeltes und um weitere Templates ergänztes "BizGrowth"
    WP 4.8

    LG
    k.N.

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

  • .sitenav bekommt bei dir eine height von 90px. Das kannst du über height: auto; ziemlich leicht korrigieren.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Manchmal ist man echt doof ;) - Danke! :D

    Bevor ich ein neues Thema aufmache und Du mir vielleicht auch folgendes beantworten kannst - in meinem Header steht bezüglich der Slider-Section:

    PHP
    <?php if ( is_front_page() && ! is_home() ) { ?>

    ..was also den Slider nur auf der Homepage zeigt. Läßt sich da etwas hinzufügen, daß das ganze auch für Archiv- und Kategorie-Seiten gilt?

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

  • [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Hab ich auch gedacht und

    Code
    && !is_archive()

    eingefügt. Funktioniert aber nicht so, wie ich dachte, http://pflegeteam.tagsucht.de/blog/2017/08/, also garnicht.

    Danke für den Link; ich vermute, der richtige Weg sind weitere elseif-Schleifen?

    Das Verzwickte am PHP für mich ist, daß ich zwar Muster in dieser Sprache wiedererkennen und Versatzstücke davon anwenden kann, aber da ich sie nicht richtig spreche, kommt manchmal nur Kauderwelsch heraus. Weil "Grüne Hügel ist auch Komponist viel gespielt in deutscher Landschaft" - verstehst Du? :D

    LG
    k.N.

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

  • <?php if ( is_archive() || is_front_page() && ! is_home() ) { ?>

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Okay, danke, das klappt! Damit versuche ich mal weiterzukommen, es sollen auch noch die Artikel mit dazukommen (single)

    Ich versuche auch immernoch das If/Else Prinzip zu verstehen.. heißt das nicht eigentlich "Wenn-dann/ansonsten"? Also bei mir im Header steht jetzt eine If-Bedingung (wenn Archiv, Home etc., dann zeige mir den Slider) und irgendwann käme ja das "ansonsten", das "else" (was ist, wenn die if-Bedingung nicht gegeben ist)

    Warum gehts aber in der header.php weiter unten (ab Zeile 80) munter weiter mit dem Slider, also mit dem "dann" und nicht dem "ansonsten"?

    Ich weiß, das ist hier nicht der richtige Ort für einen PHP-Crash-Kurs ..also nur, falls Du oder jemand anders Muße hat, mir mal auf die Sprünge zu helfen ;) - ich würde nämlich gerne für alle nicht mit If-definierten Seiten immer eine andere andere ganz bestimmte Aktion ausführen. Leider ist da bei mir Schluß (ich kann's einfach nicht) ;(

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

  • alles was in den { } beim if steht, wird auch bei Erfüllung der Bedingung ausgeführt. Else ist nur notwendig, wenn bei nicht zutreffen was anderes ausgeführt werden soll. Wenn ansonsten nichts ausgeführt werden soll, kann das else (wäre dann ja eh leer) weggelassen werden.

    if Bedingung {
    tu dies
    } else {
    tu das
    }

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

    Einmal editiert, zuletzt von maxe (8. Oktober 2017 um 23:27)

  • Man sollte solche Konstrukte vermeiden. PHP Abfragen in Templates sollte man mit der Alternativen IF Syntax schreiben: http://php.net/manual/de/cont…tive-syntax.php

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Theoretisch ist mir das ja klar.

    Da sich meine Seite ungeachtet dessen aber tatsächlich so verhält:

    Wenn Home- oder Archiv-Seite {
    zeige Slider
    } else {
    tu nichts
    }

    - warum ist der "else"-Bereich im Header nicht leer? Warum kommen dann da die ganzen Slider-Inhalte (img, caption, info etc.) drin vor? (s. Code-Copy weiter oben)

    Ich würde das ganze ja gerne so umstricken:

    Wenn Artikel-, Archiv-Seite oder Homepage {
    zeige Slider
    } else {
    zeige Artikelbild
    }

    Das ist mit aber leider zu hoch.

    (Eigenes Thema aufmachen?)

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

    Einmal editiert, zuletzt von Kai Nehr (9. Oktober 2017 um 09:22)

  • (Eigenes Thema aufmachen?)

    Ganz sicher nicht, denn wie Du schon selbst erkannt hast, ist das kein PHP Forum und Dein "Problem" ist nicht durch WordPress verursacht sonder durch mangelnde PHP Kenntnisse. maxe hat Dir alles notwendige gesagt und ich auch.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Und dafür danke ich Euch auch.

    Aber fragen kann ich doch. Vielleicht hat jemand eine ähnliche Problemstellung gehabt oder ein entsprechende Lösung parat...?

    LG
    k.N.

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

  • es gibt kein ELSE auf das bezogene IF. Der IF hört in Zeile 115 mit der letzten } auf.

    Es gibt lediglich ein ELSE auf das IF(!empty($id_arr)){ ...

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Oh! :wink:

    Ich seh' das eben nicht auf den ersten Blick :roll:
    Danke!

    (bzw. auf den zweiten, dritten, vierten und den fünften Blick..)

    Wer ohne Fehler ist, darf anderen an die Nase greifen.

    Einmal editiert, zuletzt von Kai Nehr (9. Oktober 2017 um 11:07)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!