{"id":12,"date":"2019-03-22T10:55:24","date_gmt":"2019-03-22T09:55:24","guid":{"rendered":"https:\/\/login.pluginkollektiv.org\/statify\/?page_id=12"},"modified":"2025-08-27T13:04:10","modified_gmt":"2025-08-27T11:04:10","slug":"documentation","status":"publish","type":"page","link":"https:\/\/cachify.pluginkollektiv.org\/de\/documentation\/","title":{"rendered":"Dokumentation"},"content":{"rendered":"\n<p>Cachify ist das ausgereifte, kostenlose Caching-Plugin f\u00fcr WordPress, welches die Blog-Performance steigert und Datenbankanfragen reduziert.<\/p>\n\n\n\n<p>Mit zunehmender Anzahl an dynamischen Widgets, Templates und Plugins neigt ein WordPress-Blog dazu, tr\u00e4ge zu werden. Unter Last des Besucheransturms h\u00e4ufen sich die Zugriffe auf die Datenbank, der Server hat durch die Abarbeitung flexibler Bereiche proportional mehr zu erledigen. Nicht verz\u00f6gerungsfreie Auslieferung der Webseiten ist das Resultat der Belastung. Speziell f\u00fcr kleinere bis mittlere Projekte wurde&nbsp;<em>Cachify<\/em>&nbsp;entwickelt: smartes, \u00fcbersichtliches Cache-Plugin, welches Seiteninhalte in statischer Form zwischenspeichert und Performance-schonend ausliefert. Dem Leser und Ranking zugute. Verf\u00fcgbare Speichermethoden: Datenbank, Festplatte, Memcached und Redis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"installation\">Installation<\/h2>\n\n\n\n<p><em>Cachify<\/em> kann jederzeit im offiziellen WordPress-Pluginverzeichnis heruntergeladen werden: <a href=\"https:\/\/de.wordpress.org\/plugins\/cachify\/\">Download<\/a><\/p>\n\n\n\n<p>Alternativ erfolgt die Installation direkt in WordPress im Administrationsbereich &#8222;Plugins&#8220; \u2192 &#8222;Plugins hinzuf\u00fcgen&#8220;: Nach <em>Cachify<\/em> suchen, ausw\u00e4hlen, installieren.<\/p>\n\n\n\n<p>Nach der erfolgreichen Aktivierung des Plugins k\u00f6nnen verf\u00fcgbare <a href=\"https:\/\/cachify.pluginkollektiv.org\/de\/documentation\/#einstellungen\">Cachify Einstellungen<\/a> definiert werden. Im Auslieferungszustand verf\u00fcgt <em>Cachify<\/em> \u00fcber vordefinierte Optionen, so dass der Betrieb automatisch aufgenommen wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"funktionsweise\">Funktionsweise<\/h2>\n\n\n\n<p>Zwar bietet <em>Cachify<\/em> nicht den Funktionsumfang einiger \nMonster-Plugins der Branche, das Caching-Plugin erf\u00fcllt jedoch den Zweck\n vollkommen und \u00e4u\u00dferst zuverl\u00e4ssig. Und das mit sehr minimalen Mitteln \nund \u00fcberschaubarem Code. Dadurch bleibt es \u00fcbersichtlich und schnell.<\/p>\n\n\n\n<p>Was macht also <em>Cachify<\/em>? Ruft ein Besucher eine Blogseite \nauf, pr\u00fcft das Cache-Plugin, ob diese Seite bereits im Cache als \nstatischer Quelltext vorliegt. Im Positivfall kommt die \nzwischengespeicherte Version der Seite zur Ausgabe. Andernfalls \nbef\u00f6rdert die smarte Cache-L\u00f6sung den aktuellen Seiteninhalt in den \nZwischenspeicher, welcher sich je nach Einstellung in der \nWordPress-Datenbank, der Server-Festplatte oder im Server-Speicher via \nAPC-Modul befindet. Beim n\u00e4chsten Aufruf der Seite im Browser w\u00fcrde \ndiese also aus dem Cache eingelesen und direkt an den Browser gesendet.<\/p>\n\n\n\n<p>Der Vorteil der Technik wird schnell klar: Inhalte liegen in \nstatischer Form zur Ausgabe vor und werden nicht erst durch unz\u00e4hlige \nDatenbankzugriffe und dynamische PHP-Scripte in die Ausgangsform \nzusammengef\u00fchrt.<\/p>\n\n\n\n<p>Zus\u00e4tzlich profitiert auch die Ladezeit der Blogseiten, weil  Webseiten prompter vom Server ausgeliefert werden. Im Testlabor konnte <em>Cachify<\/em>  eine Reduzierung der Datenbankabfragen um 80 Prozent und die  Ausf\u00fchrungszeit um bis zu 60 Prozent senken. Summa Summarum: Die  Datenbank und der Server werden sp\u00fcrbar entlastet.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-meta\">&lt;!DOCTYPE <span class=\"hljs-meta-keyword\">html<\/span>&gt;<\/span> <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span> <span class=\"hljs-attr\">lang<\/span>=<span class=\"hljs-string\">\"de-DE\"<\/span>&gt;<\/span> <span class=\"hljs-comment\">&lt;!-- ... --&gt;<\/span> <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n\n<span class=\"hljs-comment\">&lt;!-- Cachify | http:\/\/cachify.de\nGenerated @ 23.05.2020 18:10:11 --&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><em>Cachify im Einsatz: Plugin-Ausgabe im Quelltext<\/em><\/p>\n\n\n\n<p><strong>Cache-Reset: Automatisch und manuell<\/strong><\/p>\n\n\n\n<p>Nach neu angelegten oder modifizierten Beitr\u00e4gen leert <em>Cachify<\/em>\n den kompletten Cache, da nach der Ver\u00f6ffentlichung des Artikels zu \nviele Ver\u00e4nderungen bzw. Verschiebungen innerhalb der Archivseiten zu \nerwarten sind. Ein effizienteres Management w\u00fcrde die Komplexit\u00e4t der \nCache-L\u00f6sung steigern. Ausnahme: \u00c4nderungen an Kommentaren bewirken \neinen Neuaufbau des Cache ausschlie\u00dflich f\u00fcr die betroffene Blogseite.<\/p>\n\n\n\n<p>Ebenfalls zugunsten der \u00dcbersichtlichkeit und der Einfachheit des \nCodes sto\u00dfen selten ausgef\u00fchrte Element-Aktionen wie beispielsweise neu \nangelegte Kategorien und Tags keinen Cache-Refresh an. Bei Bedarf die <em>Cachify<\/em>-Schaltfl\u00e4che <em>Cache leeren<\/em>\n (Papierkorb-Icon) in der Admin Bar bet\u00e4tigen \u2013 daraufhin wird der \naufbewahrte Zwischenspeicher eliminiert, mit der Neuindexierung der \nDaten wird begonnen. Netzwerkweit aktiviertes Plugin leert in diesem \nFall den Cache aller Multisite-Blogs.<\/p>\n\n\n\n<p>Die Einblendung der Schaltfl\u00e4che \u201cCache leeren\u201d kann \u00fcber den Plugin-eigenen Filter <em>cachify_user_can_flush_cache<\/em> gesteuert werden. Im Lieferzustand bekommen alle WordPress-Nutzer mit der Rolle <em>Administrator<\/em> den Button angezeigt und k\u00f6nnen diesen f\u00fcr die Leerung des Cache-Bestandes nutzen.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"35\" src=\"https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2020\/05\/adminbar-de.png\" alt=\"\" class=\"wp-image-114\" srcset=\"https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2020\/05\/adminbar-de.png 700w, https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2020\/05\/adminbar-de-300x15.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\"><em>Cachify-Cache leeren bequem in der WordPress Adminbar<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p><strong>Automatische Leerung des Cache-Vorrats<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nach Ver\u00f6ffentlichung neuer Beitr\u00e4ge<\/li>\n\n\n\n<li>Nach Ver\u00f6ffentlichung neuer Seiten<\/li>\n\n\n\n<li>Nach Ver\u00f6ffentlichung neuer Custom Post Types<\/li>\n\n\n\n<li>Nach Ver\u00f6ffentlichung geplanter Beitr\u00e4ge (nur <em>Cachify<\/em> DB)<\/li>\n\n\n\n<li>Nach WordPress-Aktualisierung<\/li>\n\n\n\n<li>Beim Klick auf den Papierkorb-Button in der Adminleiste<\/li>\n\n\n\n<li>Beim Speichern von <em>Cachify<\/em>-Optionen<\/li>\n<\/ul>\n\n\n\n<p><strong>\u2013 Interne Ausnahmeliste<\/strong> (Bereiche, die vom Cache ausgenommen sind)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Passwort-gesch\u00fctzte Seiten<\/li>\n\n\n\n<li>Feeds<\/li>\n\n\n\n<li>Trackbacks<\/li>\n\n\n\n<li>Robots<\/li>\n\n\n\n<li>Vorschau<\/li>\n\n\n\n<li>Mobile-Themes (WP-Touch, Carrington, Jetpack Mobile)<\/li>\n\n\n\n<li>Suche<\/li>\n\n\n\n<li>Fehlerseiten<\/li>\n\n\n\n<li>Sitemaps<\/li>\n<\/ul>\n\n\n\n<p><strong>Schlusswort<\/strong><\/p>\n\n\n\n<p>Die Dimension der Blogs mit eingesetztem Caching-Plugin ist sekund\u00e4r:  Das Ziel ist immer, die Datenbankanfragen und PHP-Ausf\u00fchrungen zu  reduzieren, um den Server zu entlasten und die Anzeige-Geschwindigkeit  zu befl\u00fcgeln. Als Faustregel gilt: Je weniger Dynamik und Flexibilit\u00e4t,  desto kluger der Cache, desto geschwinder die Webseiten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"caching-methoden\">Caching-Methoden<\/h2>\n\n\n\n<p><em>Cachify<\/em> kann den Webseiten-Cache mithilfe von 4  unterschiedlichen Cache-Techniken verwalten: Datenbank, APC, Memcached  (nur unter Nginx) und Festplatte. Nachfolgend werden notwendige  Anpassungen an Server-Systemdateien ausf\u00fchrlich beschrieben.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#inhaltsverzeichnis\"><\/a><a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#datenbank\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"database\">Datenbank<\/h3>\n\n\n\n<p>Keine Erweiterung der Systemdatei vonn\u00f6ten.<\/p>\n\n\n\n<p>Der gecachte Inhalt wird direkt in der WordPress Datenbank gespeichert. Dies beschleunigt dennoch die Ladevorg\u00e4nge der Seite, da der Inhalt nicht dynamisch generiert werden muss, sondern das zuvor generierte HTML direkt geladen wird.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#apc-alternative-php-cache\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hdd\">Festplatte (HDD Cache)<\/h3>\n\n\n\n<p>Ist die <em>Festplatte<\/em> als Aufbewahrungsort f\u00fcr den Cache ausgew\u00e4hlt, legt <em>Cachify<\/em>\n die generierten HTML-Ansichten der angeforderten Blogseiten auf der HDD\n des Webservers ab \u2013 pro Webseite eine HTML-Datei. Der Server \u00fcbernimmt \ndabei die Umleitung auf die zust\u00e4ndige Cache-Datei. Der Start des \nPHP-Interpreters entf\u00e4llt dabei g\u00e4nzlich und sorgt somit f\u00fcr einen \nzus\u00e4tzlichen Performance-Schub.<\/p>\n\n\n\n<p>Bevor die Option in den Cachify-Einstellungen ausgew\u00e4hlt wird, sollte\n im WordPress-Verzeichnis wp-content ein neuer Ordner namens <em>cache<\/em>\n mit 777 als Rechte angelegt werden (sp\u00e4ter auch gerne restriktiver, \nfalls die Funktionsweise des Plugins nicht beeintr\u00e4chtigt wird). \nExistiert dieser Pfad bereits sind nur die Berechtigungen zu \nkontrollieren. Das Plugin wird zwar versuchen, den Ordner selbst zu \nanzulegen, doch im Fehlerfall w\u00fcrde das Skript mit einem Hinweis \naussteigen. Aus diesem Grund lieber vorsorglich selbst Hand anlegen.<\/p>\n\n\n\n<p>Die Vermittlung zwischen dem Seitenaufruf im Browser und der  existierenden Cache-Datei steuert der Webserver: Apache oder Nginx.  Entsprechend geh\u00f6rt diese Aufgabe an den Server delegiert. Dies  geschieht durch eine Erweiterung der Apache-Datei <em>.htaccess<\/em> oder der <a href=\"https:\/\/web.archive.org\/web\/20130629000345\/http:\/\/playground.ebiene.de\/nginx-wordpress-optimieren\/\">Nginx-Konfigurationsdatei<\/a>. Beispiele f\u00fcr Implementierungen folgen weiter unten.<\/p>\n\n\n\n<p>Zus\u00e4tzlich zu einer HTML-Variante der Webseiten fertigt <em>Cachify<\/em>\n eine GZIP-komprimierte Version an. Der Server greift auf die \nkomprimierte Datei zur\u00fcck und verzichtet dabei auf die eigene, \nzeitaufw\u00e4ndige Kompression der Inhalte. Man spart dabei CPU-Last, da \nDateien bereits (vor)komprimiert sind.<\/p>\n\n\n\n<p><strong>Eine Beschreibung f\u00fcr nur https und Websites, die sowohl unter https und http erreichbar sind folgt weiter unten.<\/strong><\/p>\n\n\n\n<p>Erweiterung der <em>.htaccess<\/em> (Apache):<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Apache\" data-shcb-language-slug=\"apache\"><span><code class=\"hljs language-apache\"><span class=\"hljs-comment\"># BEGIN CACHIFY<\/span>\n<span class=\"hljs-section\">&lt;IfModule mod_rewrite.c&gt;<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteEngine<\/span><\/span> <span class=\"hljs-literal\">on<\/span>\n\n  <span class=\"hljs-comment\"># set hostname directory<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{HTTPS}<\/span> <span class=\"hljs-literal\">on<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteRule<\/span><\/span> .* -<span class=\"hljs-meta\"> &#91;E=CACHIFY_HOST:https-%{HTTP_HOST}]<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{HTTPS}<\/span> <span class=\"hljs-literal\">off<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteRule<\/span><\/span> .* -<span class=\"hljs-meta\"> &#91;E=CACHIFY_HOST:%{HTTP_HOST}]<\/span>\n\n  <span class=\"hljs-comment\"># set subdirectory <\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{REQUEST_URI}<\/span> \/$\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteRule<\/span><\/span> .* -<span class=\"hljs-meta\"> &#91;E=CACHIFY_DIR:%{REQUEST_URI}]<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{REQUEST_URI}<\/span> ^$\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteRule<\/span><\/span> .* -<span class=\"hljs-meta\"> &#91;E=CACHIFY_DIR:\/]<\/span>\n\n  <span class=\"hljs-comment\"># gzip<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteRule<\/span><\/span> .* -<span class=\"hljs-meta\"> &#91;E=CACHIFY_SUFFIX:]<\/span>\n  <span class=\"hljs-section\">&lt;IfModule mod_mime.c&gt;<\/span>\n    <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{HTTP:Accept-Encoding}<\/span> gzip\n    <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteRule<\/span><\/span> .* -<span class=\"hljs-meta\"> &#91;E=CACHIFY_SUFFIX:.gz]<\/span>\n    <span class=\"hljs-attribute\">AddType<\/span> text\/html .gz\n    <span class=\"hljs-attribute\">AddEncoding<\/span> gzip .gz\n  <span class=\"hljs-section\">&lt;\/IfModule&gt;<\/span>\n\n  <span class=\"hljs-comment\"># Main Rules<\/span>\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{HTTP_ACCEPT}<\/span> .*text\/html.*\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{REQUEST_METHOD}<\/span> GET\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{QUERY_STRING}<\/span> ^$\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{REQUEST_URI}<\/span> !^\/(wp-admin|wp-content\/cache)\/.*\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> <span class=\"hljs-variable\">%{HTTP_COOKIE}<\/span> !(wp-postpass|wordpress_logged_in|comment_author)_\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteCond<\/span><\/span> \/var\/www\/html\/wordpress\/wp-content\/cache\/cachify\/<span class=\"hljs-variable\">%{ENV:CACHIFY_HOST}<\/span><span class=\"hljs-variable\">%{ENV:CACHIFY_DIR}<\/span>index.html<span class=\"hljs-variable\">%{ENV:CACHIFY_SUFFIX}<\/span> -f\n  <span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">RewriteRule<\/span><\/span> ^(.*) \/wordpress\/wp-content\/cache\/cachify\/<span class=\"hljs-variable\">%{ENV:CACHIFY_HOST}<\/span><span class=\"hljs-variable\">%{ENV:CACHIFY_DIR}<\/span>index.html<span class=\"hljs-variable\">%{ENV:CACHIFY_SUFFIX}<\/span><span class=\"hljs-meta\"> &#91;L]<\/span>\n<span class=\"hljs-section\">&lt;\/IfModule&gt;<\/span>\n<span class=\"hljs-comment\"># END CACHIFY<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Apache<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">apache<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><em>.htaccess<\/em>-Erweiterung f\u00fcr Websites, die sowohl unter <strong>http als auch https<\/strong> erreichbar sind: (<a href=\"https:\/\/gist.github.com\/mcguffin\/31f80070d631d56da23cefb4ef1b6649\">https:\/\/gist.github.com\/mcguffin\/31f80070d631d56da23cefb4ef1b6649<\/a>)<\/p>\n\n\n\n<p><em>Hinweise zu .htaccess Anpassungen<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Innerhalb der <em>.htaccess<\/em> besitzt die obige Erweiterung eine h\u00f6here Priorit\u00e4t und muss daher oberhalb der WordPress Rewrite-Regeln (markiert meist durch <em># BEGIN WordPress \u2026 # END WordPress<\/em>) platziert werden.<\/li>\n\n\n\n<li>Ist die Website <strong>nur \u00fcber SSL\/TLS<\/strong> erreichbar, so muss <code>\/wp-content\/cache\/cachify\/%{HTTP_HOST}%{REQUEST_URI}index.html<\/code> in \/wp-content\/cache\/cachify\/<strong>https-<\/strong>%{HTTP_HOST}%{REQUEST_URI}index.html abge\u00e4ndert werden.<\/li>\n\n\n\n<li>Einige (wenige) Hoster (domainFACTORY und 1und1 geh\u00f6ren dazu) stellen die Apache-Variable <em>%{DOCUMENT_ROOT}<\/em>  nicht zur Verf\u00fcgung. Das f\u00fchrt zu einem unvollst\u00e4ndigen Datei-Pfad. In  solchen F\u00e4llen bitte den Document-Pfad manuell (statt Variable)  voranstellen, siehe Anleitung <a href=\"https:\/\/torstenlandsiedel.de\/2021\/12\/20\/variable-document_root-in-htaccess-nicht-nutzbar\/\">DOCUMENT_ROOT in .htaccess durch Serverpfad ersetzen<\/a>.<\/li>\n\n\n\n<li>\u00c4nderungen an der Datei <em>.htaccess<\/em> k\u00f6nnen nicht vorgenommen werden, wenn PHP als <em>fcgi<\/em> ausgef\u00fchrt wird.<\/li>\n\n\n\n<li>Kommt es teilweise zu fehlerhaften Weiterleitungen innerhalb des Blogs, so kann die Abschaltung des <em>Apache Content Cache<\/em> Abhilfe schaffen.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">IfModule<\/span> <span class=\"hljs-attr\">mod_cache.c<\/span>&gt;<\/span>\n  CacheDisable \/\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">IfModule<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Ist in WordPress das WPTouch-Plugin (oder ein anderes Mobile-Plugin) installiert, m\u00fcssen RewriteRules erweitert werden.<\/li>\n<\/ul>\n\n\n\n<p><em>Erweiterung der Nginx-Konfigurationsdatei:<\/em><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">## GZIP<\/span>\ngzip_static on;\n \n<span class=\"hljs-comment\">## CHARSET<\/span>\ncharset utf<span class=\"hljs-number\">-8<\/span>;\n \n<span class=\"hljs-comment\">## INDEX LOCATION<\/span>\nlocation \/ {\n  <span class=\"hljs-keyword\">if<\/span> ( $query_string ) {\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-keyword\">if<\/span> ( $http_accept !~* <span class=\"hljs-string\">\"text\/html\"<\/span> ) {\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-keyword\">if<\/span> ( $request_method = POST ) {\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-keyword\">if<\/span> ( $request_uri ~ \/wp-admin\/ ) {\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-keyword\">if<\/span> ( $http_cookie ~ (wp-postpass|wordpress_logged_in|comment_author)_ ) {\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n\n  error_page <span class=\"hljs-number\">405<\/span> = @nocache;\n\n  try_files \/wp-content\/cache\/cachify\/https-${host}${uri}index.html \/wp-content\/cache\/cachify\/${host}${uri}index.html @nocache;\n}\n \n<span class=\"hljs-comment\">## NOCACHE LOCATION<\/span>\nlocation @nocache {\n  try_files $uri $uri\/ \/index.php?$args;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><em>Hinweise zu Nginx-Anpassungen<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bei Domains mit <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fully_qualified_domain_name\">FQDN<\/a> muss statt ${host} die Variable ${http_host} verwendet werden.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#allgemeine-hinweise-zu-cachify-hdd\"><\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"allgemeine-hinweise-zu-cachify-hdd\">Allgemeine Hinweise zu Cachify HDD<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Das HDD-Caching in <em>Cachify<\/em> kann nur bei aktivierten  WordPress-Permalinks ausgew\u00e4hlt und genutzt werden. Ein Schr\u00e4gstrich am  Ende des Permalinks wird ebenfalls vorausgesetzt. F\u00fcr Permalinks ohne  Slash am Ende ist die Nutzung eines speziellen .htaccess-Snippets vonn\u00f6ten. Der Snippet-Code ersetzt den oben vorgestellten .htaccess-Eintrag.<\/li>\n\n\n\n<li>Befindet sich der Blog in einem Unterverzeichnis und die dazugeh\u00f6rige <em>.htaccess<\/em> au\u00dferhalb des Blog-Verzeichnisses, geh\u00f6rt der Pfad zum Cache-Ordner angepasst.<\/li>\n\n\n\n<li>Aus technischen Gr\u00fcnden kann bei dieser Caching-Methode die Plugin-Einstellung <em>Kein Cache-Aufbau durch angemeldete Benutzer<\/em> nicht automatisch ber\u00fccksichtigt werden. Soll in WordPress <em>angemeldeten und kommentierenden Nutzern<\/em> ebenfalls die Cache-Version der Blogseiten angezeigt werden, m\u00fcssen die beiden Zeilen mit der Cookie-Abfrage (<em>RewriteCond %{HTTP_COOKIE}<\/em>) im obigen Code einkommentiert werden (Raute davor stellen). Die Option <em>Kein Cache-Aufbau durch angemeldete Benutzer<\/em> muss dennoch aktiviert bleiben.<\/li>\n\n\n\n<li>Die eingestellte Cache-G\u00fcltigkeitsdauer kann nicht einbezogen werden. Muss der Cache-Bestand in bestimmten Zeitabst\u00e4nden geleert  werden, so empfiehlt sich der Aufruf einer pr\u00e4parierten PHP-Datei per Cronjob.<\/li>\n\n\n\n<li>Dadurch, dass <em>Cachify HDD<\/em> auf PHP verzichtet und die  WordPress-Ausf\u00fchrung umgeht, k\u00f6nnen bei dieser Methode keine geplanten  WordPress-Beitr\u00e4ge ausgef\u00fchrt werden. Eine brauchbare Alternative w\u00e4re  der Aufruf der WordPress-Datei <em>wp-cron.php<\/em> (zu lokalisieren im  Hauptverzeichnis der WordPress-Instanz) mithilfe eines Server-Cronjobs  (Hoster fragen) oder eines Dienstleisters wie z.B. <em>cronjob.de<\/em>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"memcached\">Memcached (nur f\u00fcr <em>nginx<\/em>)<\/h3>\n\n\n\n<p>In Verbindung mit dem Webserver stellt <em>Cachify<\/em> eine weitere \nCaching-Methode zur Verf\u00fcgung: Memcached. Nach der Auswahl der \nPlugin-Option (soweit verf\u00fcgbar) und der Anpassung der \nNginx-Konfigurationsdatei gl\u00e4nzt die Technik mit ihrer \u00fcberragenden \nGeschwindigkeit, da der Cache vom Plugin im Arbeitsspeicher (RAM) des \nServers ablegt und vom Webserver (Nginx) direkt an den Browser \nausgeliefert wird.<\/p>\n\n\n\n<p>Geschwinder und unkomplizierter kann eine Cache-Auslieferung nicht  funktionieren. Perfektes Zusammenspiel zwischen Webserver und Memcached.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"erweiterung-der-nginx-konfigurationsdatei\">Erweiterung der <em>nginx<\/em> Konfigurationsdatei<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Nginx\" data-shcb-language-slug=\"nginx\"><span><code class=\"hljs language-nginx\"><span class=\"hljs-comment\">## GZIP<\/span>\n<span class=\"hljs-attribute\">gzip_static<\/span> <span class=\"hljs-literal\">on<\/span>;\n\n<span class=\"hljs-comment\">## CHARSET<\/span>\n<span class=\"hljs-attribute\">charset<\/span> utf-<span class=\"hljs-number\">8<\/span>;\n\n<span class=\"hljs-comment\">## INDEX LOCATION<\/span>\n<span class=\"hljs-attribute\">location<\/span> \/ {\n  <span class=\"hljs-attribute\">error_page<\/span> <span class=\"hljs-number\">404<\/span> <span class=\"hljs-number\">405<\/span> = <span class=\"hljs-variable\">@nocache<\/span>;\n \n  <span class=\"hljs-attribute\">if<\/span> ( <span class=\"hljs-variable\">$query_string<\/span> ) {\n    <span class=\"hljs-attribute\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-attribute\">if<\/span> ( <span class=\"hljs-variable\">$http_accept<\/span> !<span class=\"hljs-regexp\">~* \"text\/html\"<\/span> ) {\n    <span class=\"hljs-attribute\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-attribute\">if<\/span> ( <span class=\"hljs-variable\">$request_method<\/span> = POST ) {\n    <span class=\"hljs-attribute\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-attribute\">if<\/span> ( <span class=\"hljs-variable\">$request_uri<\/span> <span class=\"hljs-regexp\">~ \"\/wp-\"<\/span> ) {\n    <span class=\"hljs-attribute\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n  <span class=\"hljs-attribute\">if<\/span> ( <span class=\"hljs-variable\">$http_cookie<\/span> <span class=\"hljs-regexp\">~ (wp-postpass|wordpress_logged_in|comment_author)_<\/span> ) {\n    <span class=\"hljs-attribute\">return<\/span> <span class=\"hljs-number\">405<\/span>;\n  }\n\n  <span class=\"hljs-attribute\">default_type<\/span> text\/html;\n  <span class=\"hljs-attribute\">add_header<\/span> X-Powered-By Cachify;\n  <span class=\"hljs-attribute\">set<\/span> <span class=\"hljs-variable\">$memcached_key<\/span> <span class=\"hljs-variable\">$host<\/span><span class=\"hljs-variable\">$uri<\/span>;\n  <span class=\"hljs-attribute\">memcached_pass<\/span> localhost:<span class=\"hljs-number\">11211<\/span>;\n}\n\n<span class=\"hljs-comment\">## NOCACHE LOCATION<\/span>\n<span class=\"hljs-attribute\">location<\/span> <span class=\"hljs-variable\">@nocache<\/span> {\n  <span class=\"hljs-attribute\">try_files<\/span> <span class=\"hljs-variable\">$uri<\/span> <span class=\"hljs-variable\">$uri<\/span>\/ \/index.php?<span class=\"hljs-variable\">$args<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Nginx<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">nginx<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Hinweise zu Nginx-Anpassungen<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bei Domains mit <a href=\"https:\/\/de.wikipedia.org\/wiki\/Domain_(Internet)#Fully_Qualified_Domain_Name_(FQDN)\">FQDN<\/a> muss die Nginx-Variable $host gegen $http_host getauscht werden.<\/li>\n\n\n\n<li>Wenn Sie Fehler haben, versuchen Sie bitte <code>memcached_pass localhost:11211;<\/code> zu <code>memcached_pass 127.0.0.1:11211;<\/code>  zu \u00e4ndern. Dies erzwingt IPv4, da einige Server, die ipv4 und ipv6  zulassen, so konfiguriert sind, dass sie memcached nur an ipv4 binden.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#warum-nur-f%C3%BCr-nginx\"><\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"warum-nur-fur-nginx\">Warum nur f\u00fcr Nginx?<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Apache bringt keine direkte Verkn\u00fcpfung zu Memcached mit \u2013 ein Umweg \u00fcber eine PHP-Datei m\u00fcsste erfolgen (Analog zu <em>Cachify<\/em><br> APC), um von dort aus auf Caching-Daten zuzugreifen und auszugeben. <br>Manko: Der PHP-Interpreter wird gestartet und beansprucht zeitintensive <br>Ausf\u00fchrungszeit.<\/li>\n\n\n\n<li>Die Ausf\u00fchrungszeit verlangsamt sich zus\u00e4tzlich, da ausgelesene <br>Memcached-Daten vom PHP-Skript zun\u00e4chst GZIP-komprimiert werden m\u00fcssten,<br> falls die Kompression auf der Serverebene abgestellt ist.<\/li>\n\n\n\n<li>Memcache<strong>d<\/strong> (nicht Memcache) ist auf kaum einem <br>Apache-Webserver installiert. Selbst gro\u00dfe Hoster bieten das Modul nicht<br> an, da zuverl\u00e4ssige und Nutzer-separierte Speicherverwaltung nicht <br>sichergestellt werden kann.<\/li>\n<\/ul>\n\n\n\n<p>Nach zahlreichen Tests und Analysen steht fest, dass die Speicherung \nder Webseiten in Memcache in Verbindung mit einem Apache-Webserver \nkeinen erwarteten Performance-Gewinn mit sich bringt \u2013 <em>Cachify HDD<\/em> als Caching-Art ist in diesem Fall viel effizienter.<\/p>\n\n\n\n<p>Auf Webservern mit Nginx sieht es ganz anders aus: Nginx ist in der  Lage auf den Memcached-Bestand zuzugreifen und komprimiert auszuliefern.  Ohne Zwischenschritte und in erwarteter Performance. Das Nginx-Modul <a href=\"https:\/\/nginx.org\/en\/docs\/http\/ngx_http_memcached_module.html\">HttpMemcachedModule<\/a> geh\u00f6rt stets zum Lieferumgang des Webservers (Nginx).<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#warum-kein-memcache\"><\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"warum-kein-memcache\">Warum kein Memcache?<\/h4>\n\n\n\n<p>Die Binary-Implementierung von Memcache (also nicht Memcached) ist  extrem fehlerhaft, so dass Daten nicht zuverl\u00e4ssig aufbewahrt werden  k\u00f6nnen.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#festplatte-hdd-cache\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"apc\">APC (Alternative PHP Cache)<\/h3>\n\n\n\n<p>Ist APC (3.1.4 oder h\u00f6her) als PHP-Erweiterung auf dem Server \ninstalliert, so steht innerhalb der Plugin-Einstellungen eine \nentsprechende Option zur Auswahl bereit. Nach der Aktivierung legt <em>Cachify<\/em>\n die generierten HTML-Ansichten der aufgerufenen Blogseiten im Cache der\n PHP-Extension (Shared Memory) ab und ben\u00f6tigt beim Aufruf der \nBlog-Seiten keinerlei Datenbankanfragen sowie dynamische PHP-Befehle. \nBeim Abruf der Blogseiten aus dem APC-Cache ist die Reaktions- und \nR\u00fcckgabezeit des Servers \u00fcberdurchschnittlich schnell.<\/p>\n\n\n\n<p>F\u00fcr den Zugriff auf den APC-Zwischenspeicher bringt <em>Cachify<\/em> eine Vermittlungsdatei \u2013 liegend unter <em>plugins\/cachify\/apc\/proxy.php<\/em>\n \u2013 mit. Diese sogenannte Proxy-Datei analysiert den Cache-Vorrat auf die\n Existenz der aktuell aufgerufenen Webseite, liest den Inhalt im \nErfolgsfall ein und sendet ihn direkt an den Browser.<\/p>\n\n\n\n<p>Die Ausgabedateien speichert <em>Cachify<\/em> in GZIP-komprimierter \nForm ab, sodass keinerlei Prozesse f\u00fcr zus\u00e4tzliche GZIP-Komprimierungen \nund DEFLATE-Vorg\u00e4nge seitens Webserver notwendig sind. Das \nCaching-Plugin \u00fcbernimmt die Kompression und die korrekte Ausgabe an den\n Server. Prozessor- und Speicherplatz-schonend.<\/p>\n\n\n\n<p>Die Einbindung der Proxy-Datei unterscheidet sich je nach Webserver. Im Grunde handelt es sich um einen <em>auto_prepend_file<\/em> Aufruf f\u00fcr PHP-Dateien, welcher abh\u00e4ngig vom Hoster und vergebenen Privilegien in <em>.htaccess<\/em> oder <em>php.ini<\/em> eingebunden wird.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"beispiel-fur-htaccess-apache\">Beispiel f\u00fcr <em>.htaccess<\/em> (Apache)<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Apache\" data-shcb-language-slug=\"apache\"><span><code class=\"hljs language-apache\"><span class=\"hljs-section\">&lt;Files index.php&gt;<\/span>\n    <span class=\"hljs-attribute\">php_value<\/span> auto_prepend_file \/absoluter pfad zu\/plugins\/cachify\/apc\/proxy.php\n<span class=\"hljs-section\">&lt;\/Files&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Apache<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">apache<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"beispiel-fur-nginx-instanzen\">Beispiel f\u00fcr <em>nginx<\/em>-Instanzen<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Nginx\" data-shcb-language-slug=\"nginx\"><span><code class=\"hljs language-nginx\"><span class=\"hljs-attribute\">location<\/span> <span class=\"hljs-regexp\">~ .php<\/span> {\n  <span class=\"hljs-attribute\">include<\/span> fastcgi_params;\n  <span class=\"hljs-attribute\">fastcgi_pass<\/span> <span class=\"hljs-number\">127.0.0.1:9000<\/span>;\n  <span class=\"hljs-attribute\">fastcgi_param<\/span> PHP_VALUE auto_prepend_file=\/absoluter pfad zu\/plugins\/cachify\/apc\/proxy.php;\n\n  <span class=\"hljs-attribute\">location<\/span> <span class=\"hljs-regexp\">~ \/wp-admin\/<\/span> {\n    <span class=\"hljs-attribute\">include<\/span> fastcgi_params;\n    <span class=\"hljs-attribute\">fastcgi_pass<\/span> <span class=\"hljs-number\">127.0.0.1:9000<\/span>;\n    <span class=\"hljs-attribute\">fastcgi_param<\/span> PHP_VALUE auto_prepend_file=;\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Nginx<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">nginx<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Die Dateieinbindung dieser Art umgeht die zeitraubende Ausf\u00fchrung des  nicht ganz \u201cleichten\u201d WordPress-Cores und spart alle Datenbankzugriffe  ein. Positiver Nebeneffekt: Der WordPress-Quelltext bleibt unber\u00fchrt und  bleibt somit nach wie vor Upgrade-f\u00e4hig.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#memcached-nur-f%C3%BCr-nginx\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"einstellungen\">Einstellungen<\/h2>\n\n\n\n<p>Einstellungsm\u00f6glichkeiten sind auf der Plugin-Optionsseite nach  W\u00fcnschen und Gegebenheiten frei ver\u00e4nderbar. Nach dem Speichern der  Optionen leert sich der Website-Cache und vorgenommene Einstellungen  beginnen mit ihrer Wirkung. Nachfolgend werden einzelne Plugin-Optionen  erkl\u00e4rt.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/settingspage-de.png\"><img loading=\"lazy\" decoding=\"async\" width=\"272\" height=\"300\" src=\"https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/settingspage-de-272x300.png\" alt=\"\" class=\"wp-image-206\" srcset=\"https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/settingspage-de-272x300.png 272w, https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/settingspage-de-768x848.png 768w, https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/settingspage-de-300x331.png 300w, https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/settingspage-de.png 815w\" sizes=\"auto, (max-width: 272px) 100vw, 272px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Cachify<\/em> Einstellungs-Seite<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">\n<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Einstellungen#cache-methode\"><\/a><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cache-methode\">Cache-Methode<\/h3>\n\n\n\n<p>Es sind 4 Methoden f\u00fcr die Zwischenspeicherung der Inhalte verf\u00fcgbar. Zu beachten ist, dass bei <em>APC<\/em>, <em>Memcached<\/em> und <em>Festplatte<\/em> diverse Anpassungen an Server-Konfigurationsdateien notwendig sind (siehe dazu <a href=\"https:\/\/cachify.pluginkollektiv.org\/de\/documentation\/#cache-methode\">hier<\/a>).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> <em>Datenbank<\/em> steht immer zur Verf\u00fcgung.<\/li>\n\n\n\n<li> <em>APC<\/em> nur bei installiertem <a href=\"http:\/\/de.wikipedia.org\/wiki\/Alternative_PHP_Cache\">Alternative PHP Cache<\/a> ab Version 3.1.4.<\/li>\n\n\n\n<li> <em>Memcached<\/em> bei aktivem <a href=\"https:\/\/www.php.net\/manual\/de\/book.memcached.php\">Memcached<\/a> aufgesetzt auf Nginx.<\/li>\n\n\n\n<li> <em>Festplatte<\/em> als Caching-Art kann ausschlie\u00dflich bei aktivierten <a href=\"https:\/\/wordpress.org\/support\/article\/using-permalinks\/\">WordPress-Permalinks<\/a> genutzt werden.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cache-gultigkeit\">Cache-G\u00fcltigkeit<\/h3>\n\n\n\n<p>Aufbewahrungsdauer der Inhalte im Cache in Stunden. Funktionsweise:  Erreicht die Lebensdauer einer Webseite im Cache den festgelegten  Zeitraum, wird dieser Eintrag aus dem Cache entfernt und durch  aktuelleren Inhalt ersetzt. Bei CMS-Seiten lohnt sich eine Zahl im  Monatsbereich. Eine <em>0<\/em> (Null) bedeutet einen unbefristet g\u00fcltigen Cache. Bei <em>Festplatte<\/em> als Caching-Art kann diese Option aus technischen Gr\u00fcnden nicht ber\u00fccksichtigt werden.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Einstellungen#cache-generierung-kein-cache-aufbau-durch-angemeldete-benutzer\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cache-generierung\">Cache-Generierung<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"kein-cache-aufbau-durch-angemeldete-benutzer\">Kein Cache-Aufbau durch angemeldete Benutzer<\/h4>\n\n\n\n<p>In aktivierter Form sorgt die Checkbox daf\u00fcr, dass alle Blogleser <em>ausgenommen eingeloggte und bereits kommentierende Nutzer<\/em>\n den Cache initialisieren d\u00fcrfen und die zwischengespeicherte Version \neiner Blogseite angezeigt bekommen. Praktisch, wenn angemeldete \nBlog-Autoren und Administratoren beispielsweise die integrierte \nAdmin-Bar oder Editieren-Links im Theme eingeblendet bekommen, die \ngewiss nicht zum Bestandteil der zwischengespeicherten Cache-Seite \nwerden sollen.<\/p>\n\n\n\n<p>Nicht aktivierte Option bedeutet, angemeldete und kommentierende \nNutzer sehen identische Ausgabe der Webseiten wie gew\u00f6hnliche Besucher \n(es wird also nicht unterscheiden und alle sehen alles gleich). \nAndernfalls d\u00fcrfen angemeldete und kommentierende Nutzer keine \nCache-Variante der Seite erzeugen bzw. ausgeliefert bekommen.<\/p>\n\n\n\n<p>Bei <em>APC<\/em>, <em>Memcached<\/em> und <em>Festplatte<\/em> als Caching-Methode muss zus\u00e4tzlich zur Option eine Anpassung der Server-Systemdatei (<em>.htaccess<\/em> etc.) vorgenommen werden, siehe dazu <a href=\"https:\/\/cachify.pluginkollektiv.org\/de\/documentation\/#cache-methode\">hier<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"cache-bei-modifizierten-beitragen-leeren\">Cache bei modifizierten Beitr\u00e4gen leeren<\/h4>\n\n\n\n<p>Ist diese Schaltfl\u00e4che aktiviert, wird der gesamte Website-Cache geleert, wenn ein Beitrag bearbeitet wurde. Andernfalls wird nur der bearbeitete Beitrag selbst aus dem Cache entfernt.<\/p>\n\n\n\n<p>Diese Option kann hilfreich sein, falls Men\u00fcs aktualisiert werden m\u00fcssen, automatische Verlinkungen genutzt werden oder aus anderen Gr\u00fcnden weitere Seiten oder Beitr\u00e4ge von der \u00c4nderung betroffen sind.<\/p>\n\n\n\n<p>Diese Option wurde in <em>Cachify<\/em> 2.3 eingef\u00fchrt und l\u00f6st die im klassischen Editor verf\u00fcgbare Einstellm\u00f6glichkeit pro Beitrag ab.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Einstellungen#cache-generierung-cache-bei-neuen-kommentaren-leeren\"><\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"cache-bei-neuen-kommentaren-leeren\">Cache bei neuen Kommentaren leeren<\/h4>\n\n\n\n<p>Die aktivierte Option setzt den kompletten Cache-Bestand bei neuen \nKommentaren zur\u00fcck. Kann n\u00fctzlich sein, um die dynamische Ausgabe der \nKommentaranzahl pro Beitrag auf Blogseiten wie die Startseite, \nArchivseiten, etc. aktuell zu halten.<\/p>\n\n\n\n<p>Diese Funktion wird ausschlie\u00dflich auf kleineren Projekten empfohlen, wo selten kommentiert wird, da der <em>Cachify<\/em>-Cache andernfalls zu oft neu  aufgebaut werden m\u00fcsste.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Einstellungen#cache-ausnahmen-postpage-ids\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cache-ausnahmen\">Cache-Ausnahmen<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"beitrags-seiten-ids\">Beitrags-\/Seiten-IDs<\/h4>\n\n\n\n<p>Eine Komma-separierte Liste von Beitrags- und\/oder Seiten-IDs, die vom Cache  ausgeschlossen werden sollen.<\/p>\n\n\n\n<p><strong>Beispiel:<\/strong> <em>1, 2, 3<\/em><\/p>\n\n\n\n<p>Zus\u00e4tzlich kann der Filter-Hook <a href=\"https:\/\/cachify.pluginkollektiv.org\/de\/documentation\/#cachify_skip_cache\"><code>cachify_skip_cache<\/code><\/a> verwendet werden, um das Verhalten weiter einzuschr\u00e4nken.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Einstellungen#cache-ausnahmen-browser-user-agents\"><\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"browser-user-agents\">Browser User-Agents<\/h4>\n\n\n\n<p>Eine Komma-separierte Liste von <a href=\"http:\/\/de.wikipedia.org\/wiki\/User_Agent\">User Agents<\/a> (gerne nur der wesentliche Teil des Strings), die vom Cache ausgeschlossen werden sollen.<\/p>\n\n\n\n<p><strong>Beispiel:<\/strong> <em>MSIE 6, Opera<\/em><\/p>\n\n\n\n<p>Diese Option kann hilfreich sein, falls abweichende Darstellungen f\u00fcr bestimmte (z.B. \u00e4ltere) Browser generiert werden, die nicht repr\u00e4sentativ f\u00fcr die Mehrheit der Besucher sind.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Einstellungen#cache-minimierung\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cache-minimierung\">Cache-Minimierung<\/h3>\n\n\n\n<p>Minimierung (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Minification_(programming)\">Minification<\/a>) der Browser-Ausgabe. \u00dcberfl\u00fcssige Zeichen wie Zeilenumbr\u00fcche und  Kommentare werden aus dem generierten HTML-Code der Webseite entfernt, bevor diese im Cache gespeichert werden.<\/p>\n\n\n\n<p>Wird die Ausgabe der Blogseite hierdurch negativ beeinflusst (z.B. fehlen bestimmte Inhalte oder brechen mit dem Layout), sollte diese Option entweder deaktiviert oder nur auf HTML beschr\u00e4nkt werden.<\/p>\n\n\n\n<p>\u00dcber den Filter-Hook <code><a href=\"https:\/\/cachify.pluginkollektiv.org\/de\/documentation\/#cachify_minify_ignore_tags\">cachify_minify_ignore_tags<\/a><\/code> k\u00f6nnen bestimmte HTML Tags von der Minimierung ausgenommen werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cache-signatur\">Cache-Signatur<\/h3>\n\n\n\n<p>Falls gew\u00fcnscht, kann ab <em>Cachify<\/em> 2.3 die Ausgabe der Signatur in Form eines HTML-Kommentars am Ende des gecachten Markups erweitert werden.<\/p>\n\n\n\n<p>Standardm\u00e4\u00dfig wird nur eine kurze Information mit Zeitpunkt der Generierung erzeugt:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-meta\">&lt;!DOCTYPE <span class=\"hljs-meta-keyword\">html<\/span>&gt;<\/span> <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span> <span class=\"hljs-attr\">lang<\/span>=<span class=\"hljs-string\">\"de-DE\"<\/span>&gt;<\/span> <span class=\"hljs-comment\">&lt;!-- ... --&gt;<\/span> <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n\n<span class=\"hljs-comment\">&lt;!-- Cachify | http:\/\/cachify.de\nGenerated @ 02.02.2020 10:11:12 --&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Die erweiterten Ausgaben enthalten zus\u00e4tzliche Daten zur verwendeten Methode:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-meta\">&lt;!DOCTYPE <span class=\"hljs-meta-keyword\">html<\/span>&gt;<\/span> <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span> <span class=\"hljs-attr\">lang<\/span>=<span class=\"hljs-string\">\"de-DE\"<\/span>&gt;<\/span> <span class=\"hljs-comment\">&lt;!-- ... --&gt;<\/span> <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n\n<span class=\"hljs-comment\">&lt;!-- Cachify | http:\/\/cachify.de\nDB Cache @ 02.02.2020 10:11:12\nWithout Cachify: 19 DB queries, 0.55 seconds, 5.67 MB\nWith Cachify: 12 DB queries, 0.11 seconds, 3,45 MB\n--&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"erweiterte-nutzung\">Erweiterte Nutzung<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"flush-on-update\">Steuerung der Cache-Leerung bei Artikel-Updates<\/h3>\n\n\n\n<p>Bei der Aktualisierung von Artikeln kann die notwendige Cache-Leerung\n manuell beeinflusst werden. Autoren k\u00f6nnen die Entscheidung treffen, ob\n nach der Speicherung der Artikel\u00e4nderung der komplette Cachify-Cache \noder nur der Cache der betroffenen Seite entfernt werden soll \u2013 \npraktisch, wenn die get\u00e4tigte \u00c4nderung nur die eine Seite betrifft und \nkeinerlei (optische) Auswirkungen auf die restlichen Webseiten haben.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/github.com\/pluginkollektiv\/assets\/raw\/master\/cachify\/images\/cachify-publish-status.png\" alt=\"Cachify Publish-Status\" \/><\/figure>\n\n\n\n<p>\n<em>Cachify Cache-Status beim Update der Artikel<\/em><\/p>\n\n\n\n<p>Verf\u00fcgbare Optionen in der Auswahlbox:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><br><strong>Gesamtcache l\u00f6schen<\/strong> \u2013 leert den gesamten Cachify-Cache<\/li>\n\n\n\n<li><br><strong>Seitencache l\u00f6schen<\/strong> \u2013 entfernt lediglich den Cache des Artikels<\/li>\n<\/ul>\n\n\n\n<p>Die Auswahl ist nur bei bereits ver\u00f6ffentlichten Artikeln, Seiten und\n Post Types zug\u00e4nglich. Die zuletzt selektierte Option wird \nBenutzerabh\u00e4ngig  gespeichert und beim n\u00e4chsten Aufruf der \nArtikel-Bearbeitungsseite vorausgew\u00e4hlt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"wissenswertes\"> <a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#wissenswertes\"><\/a>Wissenswertes<\/h3>\n\n\n\n<p>Einige Zusatzinformationen f\u00fcr die Arbeit mit dem Caching-Plugin.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"182\" src=\"https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/dashboard-de.png\" alt=\"\" class=\"wp-image-207\" srcset=\"https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/dashboard-de.png 420w, https:\/\/cachify.pluginkollektiv.org\/de\/wp-content\/uploads\/sites\/11\/2024\/10\/dashboard-de-300x130.png 300w\" sizes=\"auto, (max-width: 420px) 100vw, 420px\" \/><\/figure>\n\n\n\n<p> Cachify Cache-Gr\u00f6\u00dfe auf dem Dashboard<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#nutzung-des-browser-cache\"><\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"browser-cache\">Nutzung des Browser-Cache<\/h4>\n\n\n\n<p>Auf Wunsch kann die HTML-Ausgabe der Blogseiten zus\u00e4tzlich im Cache \nder Browser aufbewahrt werden \u2013 f\u00fcr einen frei w\u00e4hlbaren Zeitraum. Diese\n Technik eignet sich dann, wenn ein Projekt \u00fcber wenig Dynamik verf\u00fcgt \n(keine Kommentare, selten Artikel etc.). In solchen F\u00e4llen verf\u00fcgt der \nBrowser \u00fcber eine lokale Kopie einer Blogseite, die nach definierter \nZeit abl\u00e4uft.<\/p>\n\n\n\n<p>F\u00fcr beispielsweise einen einst\u00fcndigen Browser-Cache muss die <em>.htaccess<\/em> bzw. Nginx-Serverdatei wie abgebildet komplettiert werden:<\/p>\n\n\n\n<p><em>Browser-Cache in .htaccess (Apache)<\/em><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Apache\" data-shcb-language-slug=\"apache\"><span><code class=\"hljs language-apache\"><span class=\"hljs-section\">&lt;IfModule mod_expires.c&gt;<\/span>\n    <span class=\"hljs-section\">&lt;FilesMatch \".(html|html.gz)$\"&gt;<\/span>\n        <span class=\"hljs-attribute\">ExpiresActive<\/span> <span class=\"hljs-literal\">On<\/span>\n        <span class=\"hljs-attribute\">ExpiresDefault<\/span> <span class=\"hljs-string\">\"access plus 1 hour\"<\/span>\n    <span class=\"hljs-section\">&lt;\/FilesMatch&gt;<\/span>\n<span class=\"hljs-section\">&lt;\/IfModule&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Apache<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">apache<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><em>Browser-Cache bei Nginx (platziert zwischen error_page und try_files)<\/em><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Nginx\" data-shcb-language-slug=\"nginx\"><span><code class=\"hljs language-nginx\"><span class=\"hljs-attribute\">expires<\/span> <span class=\"hljs-number\">1h<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Nginx<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">nginx<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#anpassung-der-robotstxt\"><\/a><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"robots-txt\">Anpassung der robots.txt<\/h4>\n\n\n\n<p>Damit Google und andere Suchmaschinen den statischen Inhalt des \nCache-Ordners nicht indexieren (f\u00fchrt sonst zum doppelten Content), \nsollte die im Hauptverzeichnis einer WordPress-Installation befindliche \nDatei <em>robots.txt<\/em> erweitert werden, indem der Pfad zum Ordner mit Cache-Dateien gesperrt (disallow) wird. Und so k\u00f6nnte eine <em>robots.txt<\/em> aussehen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Apache\" data-shcb-language-slug=\"apache\"><span><code class=\"hljs language-apache\"><span class=\"hljs-attribute\">User<\/span>-agent: *\n<span class=\"hljs-attribute\">Disallow<\/span>: \/wp-content\/cache\/cachify\/\n<span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">Allow<\/span><\/span>: \/<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Apache<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">apache<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">\n<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Caching-Methoden#cache-leerung-aus-drittanwendungen\"><\/a><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"flush-thirdparty\">Cache-Leerung aus Drittanwendungen<\/h4>\n\n\n\n<p>F\u00fcr den Fall, dass der <em>Cachify<\/em> Cache aus WordPress-Drittanwendungen geleert werden soll, stehen innerhalb des Plugins (ab <em>Cachify<\/em> 2.0.3) ausf\u00fchrbare Aktionen zur Verf\u00fcgung:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">if<\/span> ( has_action(<span class=\"hljs-string\">'cachify_flush_cache'<\/span>) ) {\n    do_action(<span class=\"hljs-string\">'cachify_flush_cache'<\/span>);\n}\n\n<span class=\"hljs-keyword\">if<\/span> ( has_action(<span class=\"hljs-string\">'cachify_remove_post_cache'<\/span>) ) {\n    do_action(<span class=\"hljs-string\">'cachify_remove_post_cache'<\/span>, <span class=\"hljs-number\">123<\/span>); <span class=\"hljs-comment\">\/\/ postID<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"hooks\">Hooks<\/h2>\n\n\n\n<p>Hooks erlauben es dem Nutzer, den Funktionsumfang eines WordPress-Plugins zu erweitern. Nachfolgende Hooks sind in <em>Cachify<\/em> hinterlegt und lassen sich via Code ansprechen bzw. steuern.<a href=\"https:\/\/github.com\/pluginkollektiv\/cachify\/wiki\/de-Hooks#cachify_skip_cache\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"skip_cache\">cachify_skip_cache<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> Filter (<em>Boolean<\/em>)<br><strong>Implementierung:<\/strong> <em>Cachify 2.1.1<\/em><\/p>\n\n\n\n<p>Anpassung der Ausnahmeliste von Seiten, die nicht gecacht werden sollen.<\/p>\n\n\n\n<p>Bei R\u00fcckgabewert <code>true<\/code> wird der Aufbau des Caches f\u00fcr den aktuellen Aufruf \u00fcbersprungen. F\u00fcr <code>false<\/code> wird die Generierung fortgesetzt.<br>Die interne Ausnahmeliste wird hierdurch nicht beeinflusst.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiele\"><strong>Code Beispiele<\/strong>:<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"cache-ausnahme-fur-die-kategorie-example\">Cache-Ausnahme f\u00fcr die Kategorie &#8222;Example&#8220;<\/h5>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter(\n    <span class=\"hljs-string\">'cachify_skip_cache'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $previous_result )<\/span> <\/span>{\n    \t<span class=\"hljs-keyword\">return<\/span> (\n    \t    in_category(<span class=\"hljs-string\">'example'<\/span>) ? <span class=\"hljs-keyword\">true<\/span> : <span class=\"hljs-keyword\">false<\/span>\n    \t);\n    }\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h5 class=\"wp-block-heading\" id=\"cache-ausnahme-fur-die-startseite\">Cache-Ausnahme f\u00fcr die Startseite<\/h5>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter(\n    <span class=\"hljs-string\">'cachify_skip_cache'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n    \t<span class=\"hljs-keyword\">return<\/span> is_home();\n    }\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"minify_ignore_tags\">cachify_minify_ignore_tags<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Filter (Array<\/em>)<br><strong>Implementierung:<\/strong> <em>Cachify 2.0.9<\/em><\/p>\n\n\n\n<p>Passt die Liste von HTML tags an, die bei der Minifizierung der Browser-Ausgabe ignoriert werden. Standardm\u00e4\u00dfig sind vorformatierte Textbl\u00f6cke <code>&lt;pre&gt;<\/code> und Eingabebl\u00f6cke <code>&lt;textarea&gt;<\/code> ausgeschlossen.<\/p>\n\n\n\n<p><strong>Code Beispiele:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter(\n    <span class=\"hljs-string\">'cachify_minify_ignore_tags'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $ignored_tags )<\/span> <\/span>{\n        <span class=\"hljs-comment\">\/*\n         * Standardwert:\n         * $ignore_tags = array(\n         *   'textarea',\n         *   'pre',\n         * );\n         *\/<\/span>\n        $ignored_tags&#91;] = <span class=\"hljs-string\">'custom-tag'<\/span>;\n        \n        <span class=\"hljs-keyword\">return<\/span> $ignored_tags;\n    }\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"user_can_flush_cache\">cachify_user_can_flush_cache<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Filter (Boolean<\/em>)<br><strong>Implementierung:<\/strong> <em>Cachify 1.2<\/em><\/p>\n\n\n\n<p>Dieser Hook erm\u00f6gliche die Anpassung der Benutzer, die den Cache leeren d\u00fcrfen.<br>Standardm\u00e4\u00dfig ist dies f\u00fcr Administratoren mit der Benutzerrolle <code><a href=\"https:\/\/wordpress.org\/support\/article\/roles-and-capabilities\/#manage_options\">manage_options<\/a><\/code> vorgesehen. Ein R\u00fcckgabewert <code>true<\/code> erlaubt dem aktuellen Benutzer diese Funktion auszuf\u00fchren.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiel\">Code Beispiel:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter( <span class=\"hljs-string\">'cachify_user_can_flush_cache'<\/span>, <span class=\"hljs-string\">'__return_true'<\/span> );<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"store_item\">cachify_store_item<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Filter (Boolean<\/em>)<br><strong>Implementierung:<\/strong> <em>Cachify 2.3<\/em><\/p>\n\n\n\n<p>Letzte Filterung, bevor die Daten gespeichert werden.<\/p>\n\n\n\n<p>Dieser Hook erh\u00e4lt bis zu 5 Parameter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>bool $should_cache<\/code> &#8211; Soll der aktuelle Aufruf gecacht werden? (Default: <code>true<\/code>)<\/li>\n\n\n\n<li><code>string $data<\/code> &#8211; Die aufbereiteten Daten f\u00fcr den Cache.<\/li>\n\n\n\n<li><code>object $method<\/code> &#8211; Instanz des verwendeten Caching-Backends.<\/li>\n\n\n\n<li><code>string $cache_hash<\/code> &#8211; Hash (Cache Key) des aktuellen Aufrufs.<\/li>\n\n\n\n<li><code>int $cache_expires<\/code> &#8211; G\u00fcltigkeit des Cache-Eintrags in Sekunden.<\/li>\n<\/ul>\n\n\n\n<p>Es gibt 2 m\u00f6gliche R\u00fcckgabewerte:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>true<\/code> &#8211; Der aktuelle Eintrag soll gespeichert werden (Default)<\/li>\n\n\n\n<li><code>false<\/code> &#8211; Der aktuelle Eintrag soll nicht gespeichert werden.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiel\"><strong>Code Beispiel:<\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter(\n    <span class=\"hljs-string\">'cachify_minify_ignore_tags'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $should_cache, $data, $method, $cache_hash, $cache_expires )<\/span> <\/span>{\n        <span class=\"hljs-comment\">\/\/ Kein Cache f\u00fcr Markup bis 1000 Zeichen.<\/span>\n        <span class=\"hljs-keyword\">return<\/span> strlen( $data ) &gt; <span class=\"hljs-number\">1000<\/span>;\n    },\n    <span class=\"hljs-number\">10<\/span>,\n    <span class=\"hljs-number\">5<\/span>\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"flush_cache_hooks\">cachify_flush_cache_hooks<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Filter (Array<\/em>)<br><strong>Implementierung:<\/strong> <em>Cachify 2.3<\/em><\/p>\n\n\n\n<p>Anpassung der Action Hooks, die eine Leerung des gesamten Caches ausl\u00f6sen.<\/p>\n\n\n\n<p>Dieser Hook erh\u00e4lt ein assoziatives Array aller Hooks mit dem Namen des Hooks als Schl\u00fcssel und der Priorit\u00e4t als Wert.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiel\"><strong>Code Beispiel:<\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter(\n    <span class=\"hljs-string\">'flush_cache_hooks'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $hooks )<\/span> <\/span>{\n        <span class=\"hljs-comment\">\/*\n         * $hooks = array(\n         *   'cachify_flush_cache'        =&gt; 10,\n         *   '_core_updated_successfully' =&gt; 10,\n         *   'switch_theme'               =&gt; 10,\n         *   'before_delete_post'         =&gt; 10,\n         *   'wp_trash_post'              =&gt; 10,\n         *   'create_term'                =&gt; 10,\n         *   'delete_term'                =&gt; 10,\n         *   'edit_terms'                 =&gt; 10,\n         *   'user_register'              =&gt; 10,\n         *   'edit_user_profile_update'   =&gt; 10,\n         *   'delete_user'                =&gt; 10,\n         * );\n         *\/<\/span>\n         $hooks&#91;] = <span class=\"hljs-string\">'my_custom_action'<\/span>;\n\n         <span class=\"hljs-keyword\">return<\/span> $hooks;\n    },\n    <span class=\"hljs-number\">5<\/span>,\n    <span class=\"hljs-number\">10<\/span>\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"flush_cache\">cachify_flush_cache<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Action<\/em><br><strong>Implementierung:<\/strong> <em>Cachify 2.0.3<\/em><\/p>\n\n\n\n<p>Dieser Hook erm\u00f6glicht das Leeren des gesamten Caches durch eine Drittanwendung, z.B. ein anderes Plugin.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiel\">Code Beispiel:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"> <span class=\"hljs-keyword\">if<\/span> ( has_action( <span class=\"hljs-string\">'cachify_flush_cache'<\/span> ) ) { \n     do_action( <span class=\"hljs-string\">'cachify_flush_cache'<\/span> ); \n }<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"remove_post_cache\">cachify_remove_post_cache<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Action<\/em><br><strong>Implementierung:<\/strong> <em>Cachify 2.0.3<\/em><\/p>\n\n\n\n<p>Dieser Hook erm\u00f6glicht das Entfernen eines einzelnen Posts aus dem Cache. Dabei wird die Post ID als Parameter \u00fcbergeben.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiele\">Code Beispiele:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">if<\/span> ( has_action( <span class=\"hljs-string\">'cachify_remove_post_cache'<\/span> ) ) {\n    do_action( <span class=\"hljs-string\">'cachify_remove_post_cache'<\/span>, <span class=\"hljs-number\">123<\/span> );\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"remove_post_cache\">cachify_modify_output<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Filter<\/em> (String)<br><strong>Implementierung:<\/strong> <em>Cachify 2.4.0<\/em><\/p>\n\n\n\n<p>Dieser Hook erlaubt die Modifikation der Daten bevor diese im Cache gespeichert werden. Als Parameter wird der eigentliche Inhalt (HTML Markup), der Name der aktuellen Caching Methode, der Hash des Elements und die G\u00fcltigkeit in Sekunden \u00fcbergeben.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiele\">Code Beispiel:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter(\n    <span class=\"hljs-string\">'cachify_modify_output'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $data, $method, $hash, $cache_expires )<\/span> <\/span>{\n        <span class=\"hljs-keyword\">return<\/span> $data . <span class=\"hljs-string\">'&lt;!-- zus\u00e4tzliche Kommentarzeile  --&gt;'<\/span>;\n    }\n    <span class=\"hljs-number\">10<\/span>,\n    <span class=\"hljs-number\">4<\/span>\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">cachify_create_gzip_files (nur f\u00fcr HDD Cache)<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Filter<\/em> (Boolean)<br><strong>Implementierung:<\/strong> <em>Cachify 2.4.0<\/em><\/p>\n\n\n\n<p>Mit diesem Filter kann die Erzeugung von vorkomprimierten .gzip Dateien beim Festplattencache deaktiviert werden.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiele\">Code Beispiel:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_filter(\n    <span class=\"hljs-string\">'cachify_create_gzip_files'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $enabled )<\/span> <\/span>{\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">false<\/span>;\n    }\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">cachify_removed_cache_by_url<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Action<\/em><br><strong>Implementierung:<\/strong> <em>Cachify 2.4.0<\/em><\/p>\n\n\n\n<p>Diese Action wird getriggert, wenn eine einzelne Seite aus dem Cache entfernt wurde. Der entfernte Eintrag kann durch URL oder Hash identifiziert werden.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiele\">Code Beispiel:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_action(\n    <span class=\"hljs-string\">'cachify_removed_cache_by_url'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $url, $hash )<\/span> <\/span>{\n        <span class=\"hljs-comment\">\/\/ ... do something ...<\/span>\n    },\n    <span class=\"hljs-number\">10<\/span>,\n    <span class=\"hljs-number\">2<\/span>\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">cachify_flushed_total_cache<\/h3>\n\n\n\n<p><strong>Typ:<\/strong> <em>Action<\/em><br><strong>Implementierung:<\/strong> <em>Cachify 2.4.0<\/em><\/p>\n\n\n\n<p>Diese Action wird getriggert, nachdem der gesamte Cache geleert wurde. Ein optionaler Parameter zeigt an, ob alle Caching Methoden geleert wurden oder nur die derzeit aktive.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"code-beispiele\">Code Beispiel:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">add_action(\n    <span class=\"hljs-string\">'cachify_flushed_total_cache'<\/span>,\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">( $clear_all_methods )<\/span> <\/span>{\n        <span class=\"hljs-comment\">\/\/ ... do something ...<\/span>\n    }\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"haufig-gestellte-fragen\">H\u00e4ufig gestellte Fragen<\/h2>\n\n\n\n<p>Hat das Online-Handbuch nicht alle Fragen beantwortet? Vielleicht \nhelfen die nachfolgenden Antworten auf die h\u00e4ufig gestellten Fragen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"keine-cache-gultigkeitsoption-bei-der-verwendung-des-hdd-caches\">Keine Cache-G\u00fcltigkeitsoption bei der Verwendung des HDD-Caches?<\/h3>\n\n\n\n<p>Der Cache-Ablauf kann aus technischen Gr\u00fcnden nicht ber\u00fccksichtigt \nwerden. Falls der Cache-Bestand nach bestimmten Zeitintervallen geleert \nwerden muss empfiehlt es sich eine PHP-Datei \u00fcber einen Cronjob \naufzurufen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"php-fatal-error-cannot-use-output-buffering-in-output-buffering-display-handlers-in-unknown-on-line-0\">PHP Fatal error: Cannot use output buffering in output buffering display handlers in Unknown on line 0<\/h3>\n\n\n\n<p>Nach der Inbetriebnahme des Caching-Plugins kann es zu abgebildeter \nFehlermeldung kommen. Der Hinweis erscheint, weil keine \nCache-Festplattendateien zur Ausgabe existieren. Das liegt vermutlich \ndaran, dass <em>Cachify<\/em> keine Files im Cache-Ordner ablegen konnte. Bitte Schreibrechte f\u00fcr den Cache-Ordner (zu finden im WordPress-Verzeichnis <em>wp-content<\/em>) pr\u00fcfen und ggf. korrekt setzen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"meine-website-sieht-nach-der-aktivierung-von-cachify-in-einigen-teilen-kaputt-aus\">Meine Website sieht nach der Aktivierung von Cachify in einigen Teilen kaputt aus!<\/h3>\n\n\n\n<p>Bitte stellen Sie sicher, dass es kein Problem durch die \nCache-Minimierungsfunktion gibt. Deaktivieren Sie es oder verwenden Sie \nnur HTML. Falls das Problem weiterhin besteht, k\u00f6nnen Sie es in den \n[Support-Foren] (<a href=\"https:\/\/wordpress.org\/support\/plugin\/cachify\">https:\/\/wordpress.org\/support\/plugin\/cachify<\/a>) melden. Mit dieser Funktion werden alle unn\u00f6tigen Zeichen wie Umbr\u00fcche und HTML-Kommentare aus dem Quellcode entfernt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cachify-hdd-zeichenkodierung-funktioniert-nicht-korrekt\">Cachify HDD: Zeichenkodierung funktioniert nicht korrekt<\/h3>\n\n\n\n<p>Durch die Umstellung auf <em>Cachify<\/em> HDD wird kein PHP \nausgef\u00fchrt. Bei falsch konfigurierten Servern kann dadurch zur \nfehlerhaften Darstellung der Sonderzeichen auf Webseiten kommen. Der \nFehler l\u00e4sst sich durch eine Erweiterung der Systemdatei .htaccess \nbeheben: <em>AddDefaultCharset UTF-8<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cdn-unterstutzung-in-cachify\">CDN-Unterst\u00fctzung in Cachify?<\/h3>\n\n\n\n<p>Aktuell verf\u00fcgt das Caching-Plugin f\u00fcr WordPress \u00fcber keine Anbindung an einen CDN-Anbieter. Zwar wird das Buzzword <a href=\"http:\/\/de.wikipedia.org\/wiki\/Content_Delivery_Network\">CDN<\/a>  (Content Delivery Network) als Performance-Faktor angepriesen, f\u00fcr  WordPress-Websites mit nationalem Publikum macht CDN wenig Sinn.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"php-opcache-als-caching-methode\">PHP OPcache als Caching-Methode?<\/h3>\n\n\n\n<p>Im Vergleich zu APC (<a href=\"http:\/\/de.wikipedia.org\/wiki\/Alternative_PHP_Cache\">Alternative PHP Cache<\/a>) ist <a href=\"http:\/\/php.net\/manual\/de\/book.opcache.php\">PHP OPcache<\/a> nicht in der Lage, Inhalte mit benutzerdefinierten Schl\u00fcsseln (<em>Keys<\/em>) und Werten (<em>Values<\/em>) aufzunehmen. Aus diesem Grund kann <em>Cachify<\/em> den <em>PHP OPcache<\/em> als Caching-Methode nicht ber\u00fccksichtigen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"wann-leert-cachify-automatisch-seinen-cache\">Wann leert Cachify automatisch seinen Cache?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nach Ver\u00f6ffentlichung neuer Beitr\u00e4ge<\/li>\n\n\n\n<li>Nach Ver\u00f6ffentlichung neuer Seiten<\/li>\n\n\n\n<li>Nach Ver\u00f6ffentlichung neuer Custom Post Types<\/li>\n\n\n\n<li>Nach Ver\u00f6ffentlichung geplanter Beitr\u00e4ge (nur <em>Cachify<\/em> DB)<\/li>\n\n\n\n<li>Nach WordPress-Aktualisierung<\/li>\n\n\n\n<li>Beim Klick auf den Papierkorb-Button in der Adminleiste<\/li>\n\n\n\n<li>Beim Speichern von <em>Cachify<\/em>-Optionen<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"welche-bereiche-der-website-werden-nicht-standardmassig-gecached\">Welche Bereiche der Website werden nicht standardm\u00e4\u00dfig gecached?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Passwort-gesch\u00fctzte Seiten<\/li>\n\n\n\n<li>Feeds<\/li>\n\n\n\n<li>Trackbacks<\/li>\n\n\n\n<li>Robots<\/li>\n\n\n\n<li>Vorschau<\/li>\n\n\n\n<li>Mobile-Themes (WP-Touch, Carrington, Jetpack Mobile)<\/li>\n\n\n\n<li>Suche<\/li>\n\n\n\n<li>Fehlerseiten<\/li>\n\n\n\n<li>Sitemaps<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"der-cache-ordner-wird-von-suchmaschinen-indexiert\">Der Cache-Ordner wird von Suchmaschinen indexiert!<\/h3>\n\n\n\n<p>Um sicherzustellen, dass Google und andere Suchmaschinen den  statischen Inhalt des Cache-Ordners nicht indexieren (sonst k\u00f6nnte es  doppelte Inhalte geben), sollte die im Hauptverzeichnis einer  WordPress-Installation befindliche Datei <em>robots.txt<\/em> erweitert werden,  indem der Pfad zum Ordner mit Cache-Dateien gesperrt (disallow) wird.  Dieses Problem sollte nur auftreten, wenn eine <em>statische robots.txt<\/em> verwenden wird oder der <em>wp-content<\/em>-Pfad ge\u00e4ndert wurde. Und so k\u00f6nnte eine <em>robots.txt<\/em> aussehen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"Apache\" data-shcb-language-slug=\"apache\"><span><code class=\"hljs language-apache\"><span class=\"hljs-attribute\">User<\/span>-agent: *\n<span class=\"hljs-attribute\">Disallow<\/span>: \/wp-content\/cache\/cachify\/\n<span class=\"hljs-attribute\"><span class=\"hljs-nomarkup\">Allow<\/span><\/span>: \/<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">Apache<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">apache<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cachify ist das ausgereifte, kostenlose Caching-Plugin f\u00fcr WordPress, welches die Blog-Performance steigert und Datenbankanfragen reduziert. Mit zunehmender Anzahl an dynamischen Widgets, Templates und Plugins neigt ein WordPress-Blog dazu, tr\u00e4ge zu werden. Unter Last des Besucheransturms h\u00e4ufen sich die Zugriffe auf die Datenbank, der Server hat durch die Abarbeitung flexibler Bereiche proportional mehr zu erledigen. Nicht &hellip;<\/p>\n","protected":false},"author":17,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry","post","without-featured-image"],"_links":{"self":[{"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":38,"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":210,"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages\/12\/revisions\/210"}],"wp:attachment":[{"href":"https:\/\/cachify.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}