Wechselnde Ansichten

Geschrieben von am 27. Dezember 2009 um 20:12

Da es nun endlich funktioniert und Marco wissen wollte wie es geht, hier mal kurz eine Anleitung, wie man die Bilder oben im Headerbereich ganz einfach rotieren lassen kann. Die Lösung ist pluginfrei, erfordert allerdings beim Upload neuer Bilder auch eine kurze Änderung im Script. So sieht das dann aus:

<img src="<?php bloginfo('template_directory'); ?>
    /header_img/panorama-<?php echo (rand(1,29)); ?>.jpg"
    width="100%" height="150" alt="Altmetall - Schrottie und die
    große weite Welt..." />

Dabei macht sich die Sache ganz einfach die Funktion rand() zu Nutze. Hier im Beispiel wird damit eine Zufallszahl von 1 bis 29 erzeugt, die Grafiken heißen dazu dann einfach “panorama-1″ bis “panorama-29″ und so wird halt jedesmal eine andere Grafik oben angezeigt. Wichtig ist nur, das man den Cache fürs Blog deaktiviert. Ich verwende hier WP Super Cache, da habe ich dann das cachen für die Startseite und für die Artikelseiten deaktiviert (wie vorher auch schon) da es hier öfter zu Änderungen kommt, bei allen anderen Seiten (Kategorieansichten, Seiten, etc.) spielt das wechselnde Bild kaum eine Rolle und so kann hier weiter fröhlich zwischengespeichert werden.

Ursprünglich hatte ich ein seperates Script fertiggemacht, das standalone funktionierte, aber bei Einbindung in das Template nur Fehler auswarf. So sah das dann aus:

<?php
     $folder = "header_img/";
     $images = array();
     $file_handle = opendir($folder);
     $x = 0;
          while ($file = readdir($file_handle)) {
               if($file == '.' || $file == '..') { continue; }
               if(is_dir($ordner.$file)) { continue; }
               $images[$x] = $folder . $file;
               $x += 1;
          }
     closedir($file_handle);
function ShowRandomPic() {
     global $images;
          if (count($images) > 0) {
               srand((double)microtime()*1000000);
               $rnd_img = rand(0,(count($images) - 1));
               return $rnd_img;
          }
     }
echo "<img src='http://www.bischiweb-online.de/wp/wp-content/themes/altmetall/";
echo $images[ShowRandomPic()];
echo "' width='100%' height='150' alt='Altmetall - Schrottie und die
    große weite Welt...' />";
?>

Vielleicht kann das ja noch jemand gebrauchen um es anderswo zu verwursten. :-)

Nachtrag: Manchmal ist man ja auch wirklich selten dämlich. Da verwende ich schon seit Ewigkeiten ein Script das ich mal im Internet aufgetrieben habe um die Grafiken für den RSS-Feedlink zu rotieren, und hier breche ich mir einen ab um eine Lösung zu finden. Nun denn, jetzt habe ich alles auf das Script umgestellt, dann muß nämlich nichts mehr geändert werden wenn mal ein paar Bilder dazukommen und der Dateiname der Bilder spielt auch keine Rolle.

10 Reaktionen zu “Wechselnde Ansichten”

  1. Maksi

    Oh, das rotator-Script habe ich auch noch irgendwo rumliegen ;-) Wenn ich irgendwann wieder ein Theme für ein ganzes Jahr erstellt habe (und auch verwende), könnte ich das ja auch mal wieder einbauen. Aber zuerst brauche ich genügend geeignete eigene Fotos :-)

  2. Marco

    Dankeschön! Mal sehen, ob ich das hinbekomme – für mich sind das ja alles böhmische Dörfer …

  3. Schrottie

    Naja, zumindest die Lösung mit dem Rotator-Script ist doch ganz simpel. Script kopieren (einfach nemen wie es ist und nur die Endung von phpx auf php ändern, das x ist nötig damit der Server hier das Ding nicht interpretiert sondern as is anzeigt), in das Bildverzeichnis werfen und dann eben im IMG-Tag anstelle einer Bilddatei das Script referenzieren. :happy:

  4. DelfinStern

    Hallo,
    ich muss dir leider mitteilen, dass irgendwas noch nicht geht am neuen Layout…. mein Monitor ist relativ schmal und da kann ich die artikel (zumindest den hier, die anderen hatte ich nohc nicht) nicht wirklich gut lesen, weil die rechte sidebar mit den letzten Kommentaren ect. direkt über dem Artikel liegt.. kann also die letzten 3cm vom Text nicht lesen. Wollte ich dir nur mal mitteilen, vllt haben noch andere das Problem.
    Ansonsten neues Layout gewöhnungsbedürftig, aber schön.

  5. DelfinStern

    ist echt nur bei dem Artikel hier, die letzten 2 und der aktuellste funktionieren…..

  6. Schrottie

    Hier bei diesem liegt es am preformatierten Text, der passt sich nicht der aktuellen Breite an, weil er es eben nicht darf. 8-)

  7. Luigi

    in das Bildverzeichnis werfen und dann eben im IMG-Tag anstelle einer Bilddatei das Script referenzieren.
    Kannst du das näher erläutern? :eek:

  8. Schrottie

    Ganz einfach, normalerweise fügt man ein Bild ja mittels <img src=”bild.jpg” /> ein, in diesem Falle eben einfach mit <img src=”script.php” />, wobei das Script eben direkt im Verzeichnis der Bilder liegt.

  9. mic@

    Könnte man diese rotierenden Grafiken nicht auch für oc realisieren? Würde etwas Farbe ins Grau bringen :-)

  10. Schrottie

    @mic@: So etwas wird mit Sicherheit dabei sein, aber erstmal muss ja Einigung bezüglich des Designs gefunden werden.

Einen Kommentar schreiben