Support » Allgemeine Fragen » Cache-Problem im Frontend

  • Gelöst sallyssecret

    (@sallyssecret)


    Hallo zusammen,

    ich habe ein merkwürdiges Problem mit meiner WordPress-Installation.

    Wenn ich Inhalte auf Seiten oder bei Beiträgen ändere. Wird dies auch sofort richtig im Frontend aktualisiert ausgegeben.

    Ändere ich Dinge im Code meines Templates, habe ich im Backend-Theme-Editor die Änderung sichtbar. Im Frontend passiert aber nichts. Es wird weiterhin die alte Programmcodeversion ausgegeben.

    Ich habe alle Caches der Browser geleert. Bin die gesamte Datenbank durchgegangen und manuell alle Reste schlecht deinstallierter Plug-ins und so weiter entfernt. Ich habe echt keine Ahnung mehr, warum er nicht die aktuellen Template-Dateien nimmt.

    Ich hoffe hier hat einer einen Tipp für mich, was ich noch machen könnte.
    Ich bin kurz davor die Seite komplett neu aufzusetzen. Würde allerdings einen Ausfall von mindestens 2 Tagen bedeuten, bis ich alle Inhalte wieder eingespielt habe.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Was sind denn „Dinge im Code deines Templates“?
    Geht es um eine CSS-Regel? Änderst du PHP-Code? Welchen?

    Websites neu aufzusetzen ist ein hübscher Zeitvertreib, aber man lernt meistens nicht viel und eine Änderung wäre effizienter.

    Thread-Starter sallyssecret

    (@sallyssecret)

    Mit der Stylesheet-Datei fing es an. Hatte hier Änderungen gemacht. Upload per FTP. Im Theme-Editor sind auch die aktuellen Änderungen drin. Im Frontend passiert nichts. Entwickler-Tools aufgerufen und geschaut. Die Änderungen sind dort nicht drin. Also Cache geleert. Nichts. Da habe ich dann eine Zufallsversionsnummer über die functions.php der Stylesheet-Datei mitgegeben. Damit funktionierte es dann, dass er die aktuellen Daten geholt hat.

    Ich bin jetzt gerade dabei ein kleines Plug-in zu programmieren. Das hat auch bis vor 2 Tagen noch alles soweit funktioniert. Habe heute daran weiter gemacht und habe jetzt das gleiche Problem wie mit der CSS-Datei. Obwohl ich was am php-Code ändere – und sei es einfach nur ein Kommentar einfüge – WordPress benutzt immer nur den Stand von Montag. Wenn ich über den Plug-in-Editor im Backend mir die den Code ansehe, ist dort aber der aktuelle drin.

    Das ist immer noch sehr vage umrissen und ich weiß nicht, wie wir dir dabei helfen sollen. Es gibt verschiedene Gründe, wieso Änderungen nicht greifen.

    Zwei Beispiele:

    1. Wenn du im Parent Theme eine CSS-Regel .entry-title a { color: red } hast und in einem Child-Theme a { color: green; } verwendest, wird die Regel des Child-Themes nicht genommen, weil die Regel des Parent-Theme spezifischer ist. Das ist aber kein Fehler der WordPress-Installation, sondern die normale Umsetzung von CSS-Regeln im Browser.
    2. Wenn du in einem Child-Theme eine Anpassung an der index.php vornimmst und eine Archivseite aufrufst, ist es normal dass die Anpassung sich nicht auswirkt, weil ein anderes Template (archive.php) für die Ausgabe verwendet wird.

    Solange wir nicht ganz konkret wissen, was du änderst und was du eigentlich erreichen möchtest, können wir dir kaum helfen. Eine konkrete Angabe (z.B. „auf der Seite Über uns möchte ich den Autor in fettem Schriftschnitt ausgeben. Dazu habe ich folgende Änderung vorgenomme: [Code-Beispiel]“) wäre hilfreich.

    Thread-Starter sallyssecret

    (@sallyssecret)

    Danke Bego für deine Hilfe.

    Allerdings geht es bei mir viel tiefer als ein paar kleine Änderungen. Aber ich versuche mal ein Beispiel zu geben, dass verständlicher ist.

    Ich nutze kein Child-Theme. Da ich das Design-Template selbst komplett programmiere, macht das für mich in diesem konkretem Beispiel keinen Sinn, sondern nur Mehraufwand.

    Beispiel:
    In der index.php habe ich in der Loop


    <div>get_Title</div>
    <div>get_Teaser</div>

    Wenn ich im Backend jetzt den Titel eines Betrags ändere, dann wird dies auch aktuell eingefügt.

    Ausgabe im Browser:


    <div>Hallo Welt</div>
    <div>Jetzt geht es los…</div>

    Jetzt möchte ich aber die Ausgabe der Loop noch um das Datum ergänzen. Dazu ergänze ich in der index.php


    <div>get_Title</div>
    <div>get_Date</div> <!– Hier die Änderung im Code –>
    <div>get_Teaser</div>

    Ich lade die geänderte index.php über FTP hoch.

    Im Theme-Editor im Backend ist die Änderung dann auch drin.

    Im Browser sieht es allerdings weiterhin so aus:


    <div>Hallo Welt</div>
    <div>Jetzt geht es los…</div>

    Das Verhalten betrifft auch Dateien von Plug-ins.
    Ändere ich zum Beispiel in einem Plug-in etwas. Zum Beispiel einen Funktionsaufruf. Dann ist dies im Plug-In-Editor sichtbar. In der Datei auf dem Server ist es also verändert und so wie ich es möchte.
    Das was über den Browser dann aber ausgegeben wird, ist wieder der alte Stand.

    <div>get_Title</div> müsste im Browser get_Title ausgeben – und nicht den Titel eines Beitrags oder einer Seite. Wahrscheinlich meinst du <div><?php the_title(); ?></div> mit einer anderen Funktion und in einem PHP-Tag. Da wir aber nicht hellsehen können, welche Überraschungen dein Code sonst noch enthält, kann ich dir leider auch nicht helfen. Vielleicht hast du eine falsche Funktion verwendet, vielleicht funktioniert die Funktion auch einfach anders, als du meinst – eine Funktion get_Date() gibt es im WordPress-Core nicht und get_the_date() gibt das Datum zurück (return), aber gibt es nicht aus (echo). the_date() gibt das Datum aus, aber nur einmal, wenn mehrere Beiträge zum gleichen Datum geschrieben wurden. So lässt sich die Liste möglicher Probleme fortsetzen, aber wir wissen nicht einmal, was du nun wirklich verwendet hast.

    Vielleicht hat jemand anders mehr Zeit, nochmal (und nochmal …) nachzufragen.
    Viel Erfolg.

    Thread-Starter sallyssecret

    (@sallyssecret)

    Wie gesagt, Danke für deinen Hilfe-Versuch. Aber wir sprechen hier glaube ich total aneinander vorbei. Es ist natürlich klar, dass die Funktionsaufrufe für die einzelnen Parameter anders lauten. Da dies allerdings bei meinem Problem irrelevant ist, habe ich es nur abstrakt eingetippt und habe aus Zeitmangel nicht die Details so korrekt eingebunden. Bin allerdings davon ausgegangen, dass man das unter Programmierer auch so versteht.

    Wie gesagt, es geht nicht um die WordPress-Funktionen an sich, sondern, dass der Template-Code im Frontend nicht aktualisiert wird. Im Backend allerdings schon.

    Wenn ich Dir den Code für die gesamte Problematik hier posten soll, dann brauchst Du nicht von Zeit zu sprechen, da du dann locker den gesamten Tag damit verbringen wirst, diesen zu studieren. Da es, wie gesagt, dass gesamte Frontend-System betrifft.

    Nach dem ich mir nun aber die gesamte Nacht um die Ohren geschlagen habe, habe ich den Fehler gefunden. Ich hatte einmal Testweise das Plug-In SuperPWA installiert. Leider räumt dieses Plug-In nicht vernünftig hinter sich auf, wenn es deinstalliert wird. So dass der ServiceWorker, der ja bei Progressive Web Apps gebraucht wird, nicht richtig entfernt wurde. Dieser hat darauf hin immer wieder und nicht nachvollziehbar eingegriffen und die Daten die er irgendwann mal gecached hatte mit eingeworfen.

    Ich wollte eigentlich nur wissen, ob jemand schon mal dieses Problem hatte, dass obwohl der Template-Code im Backend-Editor korrekt angezeigt wird, veralteter Template-Code im Frontend ausgegeben wird?

    Das hatte nichts mit wie rufe ich die und jene Funktion richtig auf.

    Nun gut, Problem gelöst und Tipp für alle die sich mit PWA beschäftigen. Bevor man damit live geht, erst ausgiebig testen! 😉

    Hallo @sallyssecret,

    Da dies allerdings bei meinem Problem irrelevant ist, habe ich es nur abstrakt eingetippt und habe aus Zeitmangel nicht die Details so korrekt eingebunden. Bin allerdings davon ausgegangen, dass man das unter Programmierer auch so versteht.

    hmm, mag ja sein, dass Du das so siehst, aber zunächst kann ja keiner wissen, dass Du das nur abstrakt eingetippt hast. Insofern ist natürlich klar, dass @pixolin zunächst mal auf diese Dinge eingeht.
    Wenn Du hier etwas postest, dann wäre es schon sinnvoll, das korrekt zu posten und nicht aus Zeitmangel das abstrakt zu beschreiben. Wir nehmen uns ja auch die Zeit, um Dir zu helfen. Und so bringt das wenig, vor allem, weil @pixolin jetzt quasi seine (Frei-)Zeit nutzlos investiert hat. Unschön.
    Nichts für ungut 😉
    Viele Grüße
    Hans-Gerd

    Ich habe das Problem auch seitdem ich das PWA for WP Plugin installiert habe. Im Frontend ändert sich einfach gar nix bei logged-out user, nur bei logged-in user sind die änderungen sichtbar. Ich bekommen einfach diese blöden Service Worker nicht weg. Plugin deinstallieren bringt nichts und die scripts am ftp löschen auch nicht.

    Gibt es schon lösungsansätze?

    LG

    @horrorfakten Wie wäre es, wenn du dich um Einstieg ein wenig mit unseren Forenregeln vertraut machst? Da erfährst du dann auch, dass wir ausdrücklich darum bitten, zu neuen Fragen einen neuen Thread zu starten und nicht die Frage mit dem vermeintlich „gleichen Problem“ an andere Fragen anzuhängen, die auch noch als „gelöst“ markiert sind. Es sei denn, dich interessiert die Antwort sowieso nicht: Fragen werden als „gelöst“ markiert, damit die Helfenden hier wissen, dass sie nicht mehr reinschauen brauchen.

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Das Thema „Cache-Problem im Frontend“ ist für neue Antworten geschlossen.