PHP Variablen/Ordner Angaben

  • Hi, Ich möchte gerne in der Sidebar ein Zufallsbild einfügen... normalerweise habe ich das mittels PHP gemacht; doch bei Wordpress geht das irgendwie nicht so einfach. :/

    Hier der PHP code:

    Der PHP Code hat bisher im 'normalen' HTML/PHP Betrieb super funktioniert, jetzt wird das zufällige Bild allerdings nicht geladen und ich erhalte die folende Fehlermeldung... :-s


    PHP
    warning: opendir(styles-imgr): failed to open dir: No such file or directory in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 49Warning: readdir() expects parameter 1 to be resource, bool given in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 51Warning: closedir() expects parameter 1 to be resource, bool given in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 60Warning: array_rand(): Array is empty in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 64styles-imgr/

    Wisst ihr zufällig was an dem PHP Code innerhalb der Wordpress-Umgebung nicht stimmt?

    Ist das überhaupt der richtige Weg oder sollte ich das besser wie im Link unten beschrieben über einen "Random Header" lösen?

    https://mediendesign-quer.com/custom-header-…itern-so-gehts/


    Vielen Dank im vorraus!
    slwfx

    • 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

  • Wo genau befindet sich Dein Ordner in der Ordnerstruktur?

    Von Deinem Code wird Dein Ordner derzeit hier gesucht aber lt. Fehlermeldung nicht gefunden:

    Code
    .../public_html/press/wp-content/themes/pressbook/styles-imgr/


    Evtl. wäre ein Plugin wie Hot Random Image eine Alternative, das Widget fügst Du dann ganz ohne eigenen PHP Code unter Design > Widgets in den gewünschten Sidebar ein und gibst [FONT=Courier New]styles-imgr[/FONT] bei Pfad/Path ein, wenn sich Dein Ordner hier befindet:

    Code
    .../public_html/press/styles-imgr/
  • Danke für deine Antwort.. der Ordner 'styles-imgr' befindet sich genau dort...

    Code
    .../public_html/press/wp-content/themes/pressbook/styles-imgr/

    Ich wollte das eientlich nicht über ein Plugin lösen, da ich gehört habe das es besser ist so wenig wie möglich Plugins installierst zu haben...

    Falls es wirklich nicht anders gehen sollte, werde ich das 'HOT RANDOM IMAGE' mal ausprobieren... Danke für den Link!

    Ich wusste gar nicht das es dass auch als Plugin gibt... :-)

  • Oops, oben vertippt, von Deinem Code wird Dein Ordner derzeit hier gesucht:

    Code
    .../public_html/styles-imgr/

    .. Plugin .. Widget ... und gibst [FONT=Courier New]styles-imgr[/FONT] bei Pfad/Path ein, wenn sich Dein Ordner hier befindet:

    Code
    .../public_html/press/styles-imgr/


    Und der o.g. Pfad für das Widget sollte dann natürlich auch so heissen:

    Code
    .../public_html/styles-imgr/


    Zu schnell getippt, sorry.

    Wenn Dein Order im Theme ist, dann versuche es in Deinem Code mal damit:

    Code
    $ordner = dirname( __FILE__ ) . "/styles-imgr";


    Besser wäre es allerdings, Dein Ordner wäre nicht im Theme Verzeichnis und der Code und Ordner wären in einem Child Theme oder in einem eigenen Plugin, denn bei WordPress Theme Updates wird im aktuellen Zustand sowohl Dein Code als auch der Ordner mit Deinen Bildern gelöscht/überschrieben.

    Es gibt für WordPress viele Plugins für alles mögliche... https://de.wordpress.org/plugins/

    12 Mal editiert, zuletzt von b3317133 (18. November 2021 um 18:23)

  • Komisch, der Ordner ist an beiden Locations präsent... also in

    Code
    ../public_html/styles-imgr/


    und

    Code
    .../public_html/press/wp-content/themes/pressbook/styles-imgr/
    Zitat

    Besser wäre es allerdings, Dein Ordner wäre nicht im Theme Verzeichnis und der Code und Ordner wären in einem Child Theme oder in einem eigenen Plugin, denn bei WordPress Theme Updates wird im aktuellen Zustand sowohl Dein Code als auch der Ordner mit Deinen Bildern gelöscht/überschrieben

    Das stört mich nicht, da ich ein eigenes Theme ge'build'ed habe, das auf meinen ursprünglichen Design aufbaut... werde also das theme nie 'offiziell' updaten...


    Ich habe jetzt deinen Code ausprobiert, da ich gehofft habe dadurch auf eine Plugin verzichten zu können und es kommt leider immer noch eine Fehlermeldung:

    Code
    warning: opendir(https://www.sample.com/styles-imgr): failed to open dir: not implemented in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 49Warning: readdir() expects parameter 1 to be resource, bool given in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 51Warning: closedir() expects parameter 1 to be resource, bool given in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 60Warning: array_rand(): Array is empty in /storage/content/48/1009748/sample.com/public_html/press/wp-content/themes/pressbook/header.php on line 64https://www.sample.com/styles-imgr/
  • Poste Deine aktuelle Zeile mit

    Code
    $ordner = ...


    Die PHP Funktion[FONT=Courier New] dirname()[/FONT] sollte nie eine URL zurückgeben.

    Der Ordner mit Deinen Bildern sollte bei Nutzung von

    Code
    $ordner= "styles-imgr";

    auf den gleichen Level sein wie der WordPress Ordner [FONT=Courier New]wp-content[/FONT], die Ordnernamen bei Dir mit übergeordnet [FONT=Courier New]press[/FONT] und aber auch [FONT=Courier New]pressbook[/FONT] als Theme Ordner haben oben etwas Verwirrung reingebracht, die Korrektur war doch nicht nötig...

    Tipp am Rande: Deaktiviere beim Entwickeln immer alle Cache- und Optimierungs Plugins, die schaden in so einer Phase mehr als sie nutzen...

    4 Mal editiert, zuletzt von b3317133 (18. November 2021 um 20:05)

  • Danke für deine Schnelle Antwort! :)

    Hier der PHP Code:

    Ich habe einfach die Zeile mit deinem Vorschlag ersetzt. Der Code ist in der header.php Datei eingetragen, falls dass eine Rolle spielen sollte.

  • Ich habe einfach die Zeile mit deinem Vorschlag ersetzt.


    Lt. der in Antwort #5 geposteten Fehlermeldung

    Code
    warning: opendir(https://www.EXAMPLE.com/styles-imgr): failed to open dir ...


    stand in Deinem Code zum Zeitpunkt der Meldung:

    Code
    $ordner = "https://www.EXAMPLE.com/styles-imgr";


    Inzwischen erscheint statt der Fehlermeldung der HTML-Code:

    Code
    <a href="https://www.EXAMPLE.com/index.php"><img border="0" src="
        /storage/content/48/1009748/EXAMPLE.com/public_html/press/wp-content/themes/pressbook/styles-imgr/PFA0006.PNG" width="259" height="227" alt=""></a>


    Das deutet darauf hin, dass jetzt in Deinem Code

    Code
    $ordner = dirname( __FILE__ ) . "/styles-imgr";


    verwendet wird und der Bilder Ordner im Theme.

    Da durch die Anpassung [FONT=Courier New]dirname(..)[/FONT] vorne an [FONT=Courier New]$ordner[/FONT] gesetzt wurde, musst Du Deine [FONT=Courier New]echo[/FONT] Ausgabe der Bild URL natürlich noch entspr. anpassen.

    Generell sollte man solche eigenen Pfadkonstrukte in WordPress vermeiden, für die Pfade gibt es API Aufrufe usw., siehe auch Links oben zu Child Theme und Plugin Handbook, auch dort steht mehr dazu.

    PS. Deine zunächst gepostete echte Domain ist hier durch [FONT=Courier New]EXAMPLE[/FONT] ersetzt.

    Das weiterhin laufende Cache Plugin WP Rocket solltest Du wie gesagt beim Entwickeln deaktivieren. Auch wird durch ein Cache Plugin natürlich das "zufällige" Bild auf einer Seite für Besucher so lange immer gleich angezeigt, bis der Pagecache abläuft.

    16 Mal editiert, zuletzt von b3317133 (18. November 2021 um 20:26)

Jetzt mitmachen!

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