Sidebar
ein-/ausblenden

WordPress Cache steuern (Plugin)

Plugin für WordPress SEO

Anzeige

Cache Data in Frontend
Seit Version 2.0 von WordPress wird mit dem Cache experimentiert und seit Version 2.3 ist er recht ausgewachsen. Dabei hat man die Strategie gewechselt und nutzt einen objektorientierten Cache. Der Cache arbeitet an den verschiedensten Stellen und ist nicht immer vom Betreiber des Blog gewollt. Daher hat Peter Westwood vor langer Zeit mal ein Plugin vorgestellt, welches das Steuern des Cache zulässt. Dieses habe ich schon seit geraumer Zeit um einige Punkte erweitert, wobei der Zugriff nicht immer auf die Schnelle möglich war, denn man musste sich durch das Menu von WP arbeiten - siehe Plugin Seite.

Lange Rede kurzer Sinn - ich habe die neue WordPress-Version und diverse Wünsche von Nutzern zum Anlass genommen und ein neues Plugin erstellt. Damit löse ich das alte Plugin ab und pflege nur noch dieses hier.

Was macht das Plugin?

Das Plugin ermöglicht es an verschiedenen Stellen des Backend einen Link, zum Aktualisieren des WordPress internen Cache, zu hinterlegen.
Ebenso kann man sich alle Inhalte des Cache in einer einfachen Baumstruktur anschauen.
Aber auch ohne aktiv zu werden steuert das Plugin den Cache, in dem es in Bereichen wie Kommentar frei geben, Beitrag editieren, Beitrag löschen und ähnliches den Cache neu aufsetzt. Alternativ kann man das via Direktzugriff im Backend und Frontend machen. Die unterschiedlichen Möglichkeiten lassen sich via Optionen setzen.
Ebenso kann man als geloggte User, der die Rechte der Cache-Steuerung hat, in der Regel Admin's, im Frontend die wichtigsten Inhalte des Cache sehen.

Vielen Dank an Heiko Rabe, Philip Hetjens und Sergej Müller für die Unterstützung beim Plugin. Diverse Ansätze und Überlegungen kamen aus den sehr netten Kontakten.

Anforderungen

Das Plugin arbeitet mit WP 2.0 und höher, inklusive 2.5, optimiert ist es für 2.6 & 2.7.

Installation

  1. Plugin downloaden und die zip-Datei lokal entpacken.
  2. Die PHP-Datei in euren WordPress-Plugin-Ordner kopieren (/wp-content/plugins/).
  3. Im Adminbereich deines Blogs das Plugin aktivieren.
  4. Die Einstellung auf eure Wünsche anpassen!

Screenshot der Optionen in WP 2.7

Download:

Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.
Download als zip-Datei
Download als zip-Datei:
downloads.wordpress.org/plugin/wp-cache-inspect.zip - 76 kByte

Historie

  • Grundversion stammt von PJW WP Cache Inspect
  • 0.6 - neuer Code, mehr Funktionen und optimiert für WP 2.6 & WP 2.7
  • 0.7 - Link zum Aktualisieren des Cache im Frontend möglich
  • 0.8 - Einstellungen im Settings-Bereich, User-Einstellungen der Boxen werden gespeichert, Auslagerung CSS und JS, div. Änderungen im Code

28 Kommentare und 10 Trackbacks zu „WordPress Cache steuern (Plugin)“

  1. 1
    Kommentar von harald

    super, ich habs jetzt ausprobiert. danke nochmal für die email. was ich noch aber gemacht hab: in der datei css/style-frontend.css beim element #cachelink habe ich die eigenschaft z-index:100; eingefügt so ist mein footer nicht zerschossen und der link ganz vorne. werde aber die tage nochmal intensiver austesten und gebe bescheid. vielen dank aber schonmal

  2. 2
    Kommentar von Patric Comin

    Feine Sache das Plugin, kann ich gerade sehr gut gebrauchen.
    Dafür ein dickes DANKE !

  3. 3
    Kommentar von Robert

    Frank, ich rätsle über die Auswirkungen des ajax_cache_flush(), den du via JS auslöst. Und zwar deswegen:

    * Der Object-Cache von WordPress ist nicht persistent, alle gecachten Objekte existieren also nur während der Abarbeitung eines HTTP-Requests durch den PHP-Prozess.
    * Das Plugin sendet einen POST mit der Anweisung, den Cache zu löschen, via Ajax. Die Bearbeitung dieses Requests durch den Webserver erfolgt in einem dafür laufenden PHP-Prozess, völlig getrennt von allem, was vorher, nachher oder parallel dazu im Server passiert.
    * Die Bearbeitung des AJAX-Request initialisiert das Plugin, bindet AJAX-Requestmethoden an deine Funktion und baut dabei eventuell ein paar Cache-Objekte auf - und löscht sie dann.Ohne einen wie auch immer gearteten Zusammenhang zu der gerade betrachteten Webseite, ob Backend oder Frontend. Ende der Requestbearbeitung.

    Ich komme nicht hinter die Motivation für diese Funktion. Was übersehe ich?

  4. 4
    Kommentar von Frank

    @Robert: nun übersehe ich aber die eigentliche Frage. Ich schätze deine Arbeit und dein Wissen sehr, daher will ich es bitte genauer wissen.
    Den beschriebenen Ablauf kann ich erkennen, die Fakten stimmen. Der JS-Aufruf ruft ja nur die WordPress-interne Funktion wp_cache_flush() auf. Diese macht dann den Neuaufbau des Cache. Es gibt auch eine Funktion zum Löschen des Cache, die wollte ich aber nicht einbauen, da ich einen Reset für besser erachte. Im Grunde optimiere ich ja nur, auf Basis der Hooks. Immer dann wenn man etwas verändert, dann lass ich den Cache neu aufbauen. Mit Hilfe des AJAX-Calls wird lediglich die Möglichkeit händisch aufgerufen, eigentlich nur ein jetzt löschen und neu aufbauen, als den http-Request neu starten. Es ist also kein Zusammenhang notwendig, es soll nur alles reseten.

  5. 5
    Kommentar von Robert

    Frank, meine Frage ist eigenltich die: Welche Objekte sind zum Zeitpunkt des Aufrufs von wp_cache_flush() im Cache, und woher kommen die?

    Meiner Meinung nach sind das nur Objekte, die während der Abarbeitung deines AJAX-Requests nötig waren und sowieso wieder im digitalen Nirvana verschwinden, wenn der Request fertig bearbeitet wurde. Prämisse: Es ist kein permanentes Cache-Plugin zusätzlich aktiv, einzig der nicht persistente immer vorhandene WP-eigene Cache wird gesteuert.

  6. 6
    Kommentar von Sergej Müller

    Danke für das Plugin. Mein Feedback hast du ja per E-Mail bekommen.

  7. 7
    Kommentar von Frank

    @Robert: Der Inhalt steht im Array, welches man sich auslesen kann. Ändert man etwas an Kommentaren, Beiträgen o.ä., dann wird das nicht ersichtlich, weil es im Cache war. Da greife ich ein und erstelle den Inhalt neu.

    @Sergej: Danke dir, werde mir einige Punkte überlegen. Die Übergabe per Request der Bereiche gefällt mir noch nicht so ganz, ein Cookie finde ich besser. Aber in dem Umfang halte ich fast schon für irrelevant, mal schauen.

  8. 8
    Kommentar von Sergej Müller

    Ich als User würde mich freuen, wenn beim Aufruf der Plugin-Einstellungen seine oft oder zuletzt verwendete Tabs bereits geöffnet sind. In meinen Augen eignen sich die Optionen besser als Cookies - dafür sind die ja auch da, um die Einstellungen des Nutzers zu merken.

    Für dein kleines, aber feines Plugin mag es ein wenig überdimensioniert sein...

  9. 9
    Kommentar von Robert

    Frank, ich weiß nicht wie ich's besser formulieren soll, aber: Der PHP-Prozess, der den AJAX-Request behandelt und schlussendlich wp_cache_flush() aufruft, hat meines Erachtens keine Beiträge, Kommentare oder ähnliches im Cache-Array.

    Ein anderer PHP-Prozess, der den Browseroutput für die "Beitrag bearbeiten"-Seite gebaut hat, ist dann schon längst Geschichte - und mit ihm alle Cacheobjekte, die er für die Generierung der Admin-Seite benötigt hat.

    Debugge mal mit Single Step durch ajax_cache_flush(), vielleicht wird dann deutlich, was ich meine...

    Entweder das, oder ich sehe nur Wald und keine Bäume.

  10. 10
    Pingback von WordPress Plugin Releases for 11/13 | Weblog Tools Collection
  11. 11
    Kommentar von harald

    apropos javascript (? ;-) ) folgendes: man kann ja bekannterweise googlevideos einbetten und seit geraumer zeit auch auf eine bestimmte zeit-stelle im video verlinken. ich würde gerne eine timeline erstellen. sowas wie hier für youtube mit dem chromeless player:http://www.tutorials4html.com/2008/03/12/ytranscript-using-the-brand-new-youtube-chromeless-scriptable-player/

    weiß jemand, wie ich das mit google-videos hinbekomme?

    viele grüße

  12. 12
    Pingback von WordPress Plugin Releases for 11/13 | bloground.ro - Blogging resources, WordPress themes and plugins for your development
  13. 13
    Pingback von WordPress Plugin Releases for 11/13 | BlogBroker24-7
  14. 14
    Pingback von Weblog Tools Collection: WordPress Plugin Releases for 11/13 | KaosKoxp Oyun Portalı
  15. 15
    Pingback von Weblog Tools Collection: WordPress Plugin Releases for 11/13 | PR & Tech
  16. 16
    Pingback von WordPress Plugins 11/13
  17. 17
    Pingback von Weblog Tools Collection: WordPress Plugin Releases for 11/13 | Aslifm Blogu
  18. 18
    Pingback von WordPress Plugin Releases for 11/13 | PATRON DIGITAL.COM
  19. 19
    Pingback von New WordPress plugins - 15.11.2008 | WPStart.org - WordPress themes, plugins and news
  20. 20
    Pingback von WordPress Plugin Releases for 11/13 | Projektet II
  21. 21
    Kommentar von LastOne

    Sag mal Frank, wie schaut es denn mit der zusammenarbeit von Statistik-Plugins oder auch Tools aus? Ich nutze zb chcount welches über einen PHP Eintrag im footer aufgerufen wird. Wenn dies natürlich gechaced ist klappt das nicht. Kann man da eine Lösung implementieren das der footer zb immer frisch generiert wird?

  22. 22
    Kommentar von Frank

    @LastOne: Statistiktools sind vom WP-Cache nicht betroffen. Dazu muss man nichts machen.

  23. 23
    Kommentar von LastOne

    Sicher? Das hatte ich bisher bei den Cache Lösungen immer anders verstanden. Aber dann teste ich das mal. Wie immer: Danke dir!

  24. 24
    Kommentar von ovidiu

    hi Frank. leider gibts mit wp 2.7-RC1-10119 folgende Fehlermeldung, kannst du das eventuell mal ueberpruefen/ueberarbeiten?

    Warning: Invalid argument supplied for foreach() in /var/www/web6/web/wp-content/plugins/wp-cache-inspect/wp-cache-inspect.php on line 351

  25. 25
    Kommentar von Frank

    @ovidiu: Ich habe die gleiche Version laufen aber keinen Fehler. Wo bekommst du die Meldung? Bevor WP 2.7 nicht raus kommt, würde ich ungern ändern. Ich schraube schon an den anderen Plugins bald täglich, da die Veränderungen extrem sind.

  26. 26
    Kommentar von ovidiu

    hmmmm.... also ich aktivier das Plugin, version 0.8.2 gehe in die Optionen, selektiere: Data in Frontend sosnt nichts, speichere, gehe auf meine Seite, frontend und sehe:

    Warm Cache Hits:
    Cold Cache Hits:
    Cache Misses:
    DB Queries: 58

    Loaded data:

    Warning: Invalid argument supplied for foreach() in /var/www/web6/web/wp-content/plugins/wp-cache-inspect/wp-cache-inspect.php on line 351

    sonst nichts. wie koennte ich das Problem denn debuggen?

  27. 27
    Kommentar von Frank

    @ovidiu: ich vermute, dass es im nächsten Update wieder gehen wird. So lange könntest du die Funktion ja raus nehmen, einfach in den Optionen deaktivieren. Die Daten werden aus der Variable von WP geladen und durch die Schleife in ihre Bestandteile zerlegt. Alternativ wird das auch im Backend des Plugin bei aktiver Funktion gezeigt, nur viel ausführlicher.

  28. 28
    Kommentar von Free Wordpress Themes

    Sorry my english firstly, i read well but i cant write :) , So its useful post for me and i bookmarked your blog.

  29. 29
    Kommentar von Steffen

    Hmm schade, für den einsatz in WPMU hängt es wohl an anderen Userverwaltung.
    Habe spaßenshalber mal current_user_can('manage_cache') mit 1 == 1 ersetzt, damit ich einen Eindruck bekomme. Der Feed-Cache ist nicht dabei?

  30. 30
    Kommentar von Steffen

    OK, zum Aktualisieren des Feed-Caches reicht es auch einen Artikel über QuickEdit noch mal zu aktualisieren. Brauche ich jetzt ja auch nur in der Entwicklungsphase.

  31. 31
    Kommentar von Gerhard Lehnhoff

    Läuft das Plugin auch unter WPMU?

  32. 32
    Kommentar von Frank Bültge

    Ich habe keine tests gemacht, sollte aber gehen, da ich nichts habe, was WPMU besonders wäre bzw. alle Hooks in MU ebenso Verwendung finden.

  33. 33
    Kommentar von Gerhard Lehnhoff

    Danke Frank, ja, es geht. Man darf das Plugin allerdings nicht in "mu-plugins" kopieren, sondern es muss in "plugins". So wirklich merken tue ich allerdings keine Geschwindigkeitserhöhung, was aber sicherlich nicht am Plugin liegt. Vielleicht kannst du als Spezi nochmals kommentieren: Werden meine eingebundenen RSS-Feeds gecashed? Die machen mir nämlich Probleme (ist nicht das RSS-Widget sondern eigener Code).

    Gruß, gl

  34. 34
    Kommentar von Frank Bültge

    Das Plugin erweitert den Cache nicht, es optimiert ihn nur dahingehend, dass er neu geschrieben wird, wenn man Kommentare frei gibt, Einträge verändert und ähnliches. Wenn das Plugin zum Einbinden des Feed nicht cacht, dann nein.

  35. 35
    Kommentar von Dietrich Koch

    Klasse plugin. Habe so etwas als alter Typo3-er lange gesucht. Über eine Kleinigkeit bin ich irritiert. Die Übersetzung von Cache flush kommt nicht an, obwohl vorhanden, obwohl korrket mit _ aufgerufen. Ist mir bislang noch nicht passiert. Hast du eine Idee, wo der Haken ist. Nebenbei: wenn sie dann ankäme , würde ich das eher mit Cache leeren statt Cache abgleichen übersetzen. Womit wird der abgeglichen? Da fehlt mir das Tiefenwissen.
    Vielen Dank
    Dietrich

  36. 36
    Kommentar von Frank Bültge

    @Dietrich: Habe den Fehler gefixt und nun sollte das alles passen; über die Übersetzung kann man sicher streiten, aber Flush leert den Cache nicht, es setzt ihn zurück auf einen Anteil, den WP vorgibt.

  37. 37
    Kommentar von Dietrich Koch

    Danke für die schnelle Reaktion. In der plugin-Liste wird aber noch keine Version angezeigt. Muss ich wohl noch ein bisschen warten. Inhaltlich wäre also die passende Übersetzung: Cache zurücksetzen.

  38. 38
    Kommentar von Frank Bültge

    @Dietrich: ist nun vorhanden, habe eben geschaut.

Kommentar schreiben

Kommentar-Hilfe

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem JavaScript-Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.