Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere Auswahl per elseif

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrere Auswahl per elseif

    Sorry, bin grad dämlich, aber stimmt etwas nicht an diesem Code (Abfrage, ob Option 1 gegeben ist; wenn nicht, dann ob Option 2; wenn diese auch nicht, dann wird Option 3 genommen)?

    Code:
    <?php
    if ( is_mobile() ) {the_post_thumbnail( 'blogbildmobil' );}
    elseif {( is_tablet() ) {the_post_thumbnail( 'blogbild' );}
    else {the_post_thumbnail( 'blogbild' );};
    ?>
    Ich hatte es zuerst so:

    Code:
    <?php
    if ( is_mobile() ) {the_post_thumbnail( 'blogbildmobil' );}
    else {the_post_thumbnail( 'blogbild' );};
    ?>
    Das klappte auch, aber ich brauche noch eine Unterscheidung, da WP Tablets auch als "mobile" erkennt, ich dort aber ein anderes Design gesetzt haben möchte.


  • #2
    warum unterscheidest du, führst aber beim elseif und else das gleiche aus?
    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

    Kommentar


    • #3
      Die Klammersetzung ist beim elseif nicht korrekt. Kann man bei schöner formatiertem Code recht schnell erkennen, fällt aber auch so direkt auf.

      Kommentar


      • #4
        Ach, Mist, eine geschweifte Klammer zu viel ... vielen Dank.

        Moewe, ich musste unterscheiden, da wenn ich nur if is_mobile 1 else 2 verwende, auch bei Tablets das Design 1 angezeigt wird. Tablets werden leider auch unter "is_mobile" gezählt. Unter Tablets hätte ich aber lieber gern das Design 2 (größere Auflösung).

        Zumindest der Fehler im Code ist nun behoben, danke euch.

        Leider löst es nicht mein Problem, da das Plugin das Tablet leider immer noch als "is_mobile" und nicht "is_tablet" identifiziert. Mist.

        Da muss ich wohl eine andere Lösung/ein anderes Plugin für Wordpress finden ...

        Kommentar


        • #5
          Zitat von xVEGAx Beitrag anzeigen
          Moewe, ich musste unterscheiden, da wenn ich nur if is_mobile 1 else 2 verwende, auch bei Tablets das Design 1 angezeigt wird. Tablets werden leider auch unter "is_mobile" gezählt. Unter Tablets hätte ich aber lieber gern das Design 2 (größere Auflösung).

          Leider löst es nicht mein Problem, da das Plugin das Tablet leider immer noch als "is_mobile" und nicht "is_tablet" identifiziert. Mist. ...
          Das meinte ich damit, wenn tablet und mobile unterschieden wird, bräuchtest du das elseif nicht.
          Du willst ja nur für mobile except tablet das design 2 haben. Also würde ein else reichen, wenn is_mobile() != is_tablet() ist.

          Aber was möglich ist, wenn ich das so raushöre.
          If(is_tablet())
          elseif(is_mobile())
          else....

          Jedes Tablet ist mobile, aber nicht jedes mobile ist tablet
          Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

          Kommentar


          • #6
            Ach, meinst du, die Reichenfolge macht einen Unterschied? Dachte,
            der fragt alle Instanzen ab und fertig ... ich teste gleich mal, danke.

            Kommentar


            • #7
              Okay, schade, das war nicht die Lösung. Ich nehme
              an, das Plugin intern führt halt die Detection nicht
              korrekt aus es funzt nicht über einen Simulator: alexw.me/ipad2

              (Ich habe kein echtes iPad zum Testen da.)

              Kommentar


              • #8
                Zitat von xVEGAx Beitrag anzeigen
                Ach, meinst du, die Reichenfolge macht einen Unterschied? Dachte,
                der fragt alle Instanzen ab und fertig ... ich teste gleich mal, danke.
                Also mir wurde das mal so beigebracht.
                Übersetzt heißt es ja auch wenn das so ist dann ansonsten wenn das so und so ist dann ansonsten dann.
                Bei TurboPascal hab ich auch noch If then else gelernt.

                Demnach müsste eine Änderung der Reihenfolge helfen.
                wenn der alle Instanzen prüft, könnte man genausogut sagen if.....if....if und man könnte sich das else sparen.


                Also sollte das bei PHP anders sein, dann bitte mal kurz die Info. Ich hoffe nicht das er alles prüft.


                @edit prüf doch mal bitte das hier:
                PHP-Code:
                if(is_tablet()){echo "tablet ja";}
                elseif(
                is_mobile()){echo "mobile ja";}
                else{echo 
                "weder noc";} 
                Syntax Fehler bitte ich grade zu entschuldigen
                Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                Kommentar


                • #9
                  Das Hauptproblem vieler Fragesteller hier ist das sie nicht wissen was sie wollen oder dies nicht rüberbringen können. Zur Klärung fülle doch bitte mal folgende tabelle aus:
                  Code:
                  is_tablet	is_mobile	Aktion/thumbnail
                  -----------------------------------------
                  0		0		A
                  0		1		B
                  1		0		C
                  1		1		D
                  Dann wird es ein Klacks sein, die if-elseif-else Bedingungen zu formulieren.
                  PHP-Klassen auf github

                  Kommentar


                  • #10
                    Zitat von Moewe Beitrag anzeigen
                    Also mir wurde das mal so beigebracht.
                    Übersetzt heißt es ja auch wenn das so ist dann ansonsten wenn das so und so ist dann ansonsten dann.
                    Bei TurboPascal hab ich auch noch If then else gelernt.

                    Demnach müsste eine Änderung der Reihenfolge helfen.
                    wenn der alle Instanzen prüft, könnte man genausogut sagen if.....if....if und man könnte sich das else sparen.


                    Also sollte das bei PHP anders sein, dann bitte mal kurz die Info. Ich hoffe nicht das er alles prüft.


                    @edit prüf doch mal bitte das hier:
                    PHP-Code:
                    if(is_tablet()){echo "tablet ja";}
                    elseif(
                    is_mobile()){echo "mobile ja";}
                    else{echo 
                    "weder noc";} 
                    Syntax Fehler bitte ich grade zu entschuldigen
                    Zitat von jspit Beitrag anzeigen
                    Das Hauptproblem vieler Fragesteller hier ist das sie nicht wissen was sie wollen oder dies nicht rüberbringen können. Zur Klärung fülle doch bitte mal folgende tabelle aus:
                    Code:
                    is_tablet	is_mobile	Aktion/thumbnail
                    -----------------------------------------
                    0		0		A
                    0		1		B
                    1		0		C
                    1		1		D
                    Dann wird es ein Klacks sein, die if-elseif-else Bedingungen zu formulieren.
                    Danke euch beiden, aber wie gesagt, ich glaube, der Code ist schon (schematisch) richtig so.

                    if is_tablet 1
                    elseif is_mobile 2
                    else 1

                    Das heißt Tablets und Desktops sollen gleich aussehen, Mobiltelefone anders.

                    Ich habe ja auch zwei verschiedene Menüs eingerichtet, bzw. per Funktion erstellt und wie gesagt, beim Tablet wird noch das Menü für "mobile" angezeigt.

                    Es gibt dafür nur zwei logische Konsequenzen:

                    1. Der Emulator funktioniert nicht richtig und ich habe kein (verdammtes :P ) iPad zum Testen.

                    2. Das Plugin setzt is_tablet nicht richtig um, bzw. erkennt eben ein Tablet nicht.

                    Gegen Punkt 1 spricht, dass der Emulator ja die mobile Version anzeigt, also irgendwie von meiner Website (und dem Plugin) ja als mobile Einheit erkannt wird und nicht als Fake-Device/Emulator.

                    In anderen Worten, ich danke euch, aber wir können hier nichts weiter machen, denke ich.

                    Ich brauche entweder jemanden mit einem iPad zum Testen oder den PHP-Browser-Detection-Programmierer, der mir die Frage beantwortet, warum is_tablet nicht funzt, obwohl es das angeblich soll laut seinem Source-Code (Support habe ich gerade mal angeschrieben).

                    Vielen Dank auf jeden Fall, hier lernt man doch immer wieder etwas.

                    Kommentar


                    • #11
                      Zitat von xVEGAx Beitrag anzeigen
                      Danke euch beiden, aber wie gesagt, ich glaube, der Code ist schon (schematisch) richtig so.

                      if is_tablet 1
                      elseif is_mobile 2
                      else 1

                      Das heißt Tablets und Desktops sollen gleich aussehen, Mobiltelefone anders.

                      Ich habe ja auch zwei verschiedene Menüs eingerichtet, bzw. per Funktion erstellt und wie gesagt, beim Tablet wird noch das Menü für "mobile" angezeigt.

                      Es gibt dafür nur zwei logische Konsequenzen:

                      1. Der Emulator funktioniert nicht richtig und ich habe kein (verdammtes :P ) iPad zum Testen.

                      2. Das Plugin setzt is_tablet nicht richtig um, bzw. erkennt eben ein Tablet nicht.

                      Gegen Punkt 1 spricht, dass der Emulator ja die mobile Version anzeigt, also irgendwie von meiner Website (und dem Plugin) ja als mobile Einheit erkannt wird und nicht als Fake-Device/Emulator.

                      In anderen Worten, ich danke euch, aber wir können hier nichts weiter machen, denke ich.

                      Ich brauche entweder jemanden mit einem iPad zum Testen oder den PHP-Browser-Detection-Programmierer, der mir die Frage beantwortet, warum is_tablet nicht funzt, obwohl es das angeblich soll laut seinem Source-Code (Support habe ich gerade mal angeschrieben).

                      Vielen Dank auf jeden Fall, hier lernt man doch immer wieder etwas.
                      Wie gesagt, durch echos in der If Anweisung, würdest du zumindest feststelle ob dit tablet nicht als tablet erkannt wird.
                      Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                      Kommentar


                      • #12
                        Zitat von Moewe Beitrag anzeigen
                        Wie gesagt, durch echos in der If Anweisung, würdest du zumindest feststelle ob er der ein tablet nicht als tablet erkennt.
                        Okay, das kann ich kurz testen, aber ich denke,
                        da kommt schon "mobile" raus. Bis gleich ...

                        Kommentar


                        • #13
                          Zitat von xVEGAx Beitrag anzeigen
                          Okay, das kann ich kurz testen, aber ich denke,
                          da kommt schon "mobile" raus. Bis gleich ...
                          War auch mehr so gemeint, im Sinne von. So biste auf der sicheren Seite. Richtig vermuten und schlußfolgern ist super. Aber wenn man es mit wenigen griffen testen kann, dann macht das schon Sinn. Und für die Zukunft macht man sowas dann automatisch und zweifelt nicht an seinem Code
                          Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                          Kommentar


                          • #14
                            Zitat von xVEGAx Beitrag anzeigen
                            Danke euch beiden, aber wie gesagt, ich glaube, der Code ist schon (schematisch) richtig so.

                            if is_tablet 1
                            elseif is_mobile 2
                            else 1
                            Eleminiere die Redundanz. "1" ist dein Standardfall, also reicht das:
                            PHP-Code:
                            if (is_mobile()) {
                              
                            // Fall 2
                            }
                            else {
                              
                            // Fall 1

                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar


                            • #15
                              HOLY SHIT: "tablet ja"

                              ... aber dann verstehe ich nicht, wieso er das falsche Menü und die kleinen Bilder (beide für "mobile") anzeigt. Der Code ist doch immer derselbe:

                              Bilder:
                              Code:
                              	if ( is_tablet() ) { the_post_thumbnail( 'blogbild' ); }
                              	elseif ( is_mobile() ) { the_post_thumbnail( 'blogbildmobil' ); }
                              	else { the_post_thumbnail( 'blogbild' ); };
                              Menü:
                              Code:
                              	if ( is_tablet() ) { wp_nav_menu( array('menu' => 'primary' ) ); }
                              	elseif ( is_mobile() ) { wp_nav_menu( array('menu' => 'mobile' ) ); }
                              	else { wp_nav_menu( array('menu' => 'primary' ) ); };
                              Der Hund liegt also woanders begraben ...


                              PS Istegelitz, sorry, verstehe ich nicht. Wir haben zwar zwei Designs, aber drei Ausgangsgeräte: Tablet, mobile und Rest. Reines if und else reicht da nicht aus.

                              Kommentar

                              Lädt...
                              X