Header/Slider

  • Hallo TP'ler,


    ich würde gerne eine header.php erstellen, die aufgerufen wird, wenn ein Masterslider shortcode in der Seite ist.

    Und zwar soll der Slider direkt unter der Navigation erscheinen noch vor dem Entry Titel ohne Padding zwischen Navigation und Slider.

    Wie es geht mit der ID des Sliders zusammen mit einer angepassten page.php in der die Seite spezifiziert wird, weiß ich. Aber ich hätte gerne eine generelle Lösung.

    Geht das? Kann mir jemand sagen wie? Schon jetzt - herzlichen Dank . . .


    Hier wäre der Anwendungsfall: http://bit.ly/2ED9deY

  • Hallo Stickl,


    so ganz kann ich dir nicht folgen was du umsetzen möchtest. Mein Verständnis deines Anliegens.

    Wenn ein Masterslider shortcode in der Seite ist, könntest du eine Boolean Variable, z.B.
    $bSlider = true; setzen.


    In Abhängigkeit dieser Variablen dann weiteren Code ausführen lassen, oder eine beliebige php datei mit include oder require einbinden.

    Code
    1. if ($bSlider == TRUE) {
    2.     // Code wenn bSlider True ist
    3.     require('machwas.php');
    4. } else {
    5.     // Code wenn bSlider False ist
    6.     require('machwasanderes.php');
    7. }

    Vielleicht liege ich auch komplett daneben?

    Gruß HMV

  • He he HMV, ich dachte es geht super einfach, aber höchstwahrscheinlich nicht. Keine header.php kann erkennen, ob in meinem Text ein Shortcode steckt, oder?

    Ich habe jetzt das in die header.php geschrieben:

    <?php if( is_page( 338 )) {

    echo get_masterslider ( 2 ); }

    elseif(is_page(1522)) {

    echo get_masterslider ( 3 ); }

    elseif(is_page(array('1817', '2481', '2483')) ) {

    echo get_masterslider ( 4 ); }

    else echo do_shortcode('[masterslider id="1"]');?>


    Geht es einfacher? Schöne Grüsse von Stickl


    PS: Du hast natürlich recht, wenn ich meinen eigenen Text lese, merke ich selbst, dass er etwas schwer verständlich ist. Aber ich möchte einfach nur verschiedene Slider auf verschiedenen Seiten ausgeben. Entweder ganz oben auf der Seite oder direkt unter der Navigation mit möglichst wenig Aufwand.

    Einmal editiert, zuletzt von Stickl ()

  • Hi Stickl,

    du kannst natürlich in der header.php einen Code einbauen der eine bestimmte php Datei öffnet, diese zeileweise einliest und nach einem bestimmten String (Zeichenfolge), z.B. masterslider sucht. Wenn dieser String gefunden wurde, kannst du anschließend entsprechend darauf reagieren.


    $bgefunden = False;

    //

    // In der einedatei.php ist der MasterSlider Code enthalten

    // Nach dem MasterSlider Code suchen und alle Fundstellen in ein Array schreiben, $ausgabe

    $zeilen=file("einedatei.php"); // file( ) liefert dir die Zeilen schon in einem Array .. 
    $ausgabe=array();
    foreach($zeilen as $zeile) {
       if (strpos($zeile,'Suchwort')!==FALSE) // FALSE heist das Suchwort wurde nicht gefunden 
          $ausgabe[]=$zeile;
    }
    //
    // jetzt sind in $ausgabe alle Zeilen , die das Suchwort enthalten
    for($i=0;$i<count($ausgabe);$i++) {

      // Nur eine Testausgabe mit echo, anschließend auskommentieren.
      echo $ausgabe[$i]."<br/>";

      // Masterslider Code ist enthalten, daher $bgefunden auf True gesetzt

      $bgefunden = True;
    }


    Am einfachsten wäre natürlich deine if elseif else Abfrage. Bedeutet aber auch, dass du jede neue Seiten-Nr. in deinem Page-Array ergänzen musst. Wenn die Slider (Slider Bilder) unabhängig vom Thema der Seiten sind, kannst du auch eine Zufallszahl von 1 bis 4 erzeugen um verschiedene Slider auszugeben.


    Code
    1. $zufall = rand(1,4);
  • Hola HMV, hier liegt der Hund begraben, es sollen ausgewählte Slider (ID) auf ausgewählten Seiten (Page ID) erscheinen. Ich suche eine Lösung, damit meine Freundin selbst bestimmen kann, welcher Slider auf welcher Seite erscheint. Man müsste jemand finden, der dafür ein Plugin schreibt, lach . . .

  • Ahh, das mit WordPress hatte ich vergessen zu erwähnen. Bis auf weiteres bleibe ich wohl bei der header.php Idee und trage, wenn nötig, weitere elseif ein. Am besten wäre natürlich, wenn das Masterslider plugin diese Funktion dazu bereitstellen würde. Danke, dass du es dir angeschaut hast. Schöne Grüsse von Stickl