Der beste Weg, um dynamischen Inhalt auf einer zwischengespeicherten Wordpress-Site anzuzeigen?


14

Ich möchte unbedingt eines der Cache-Plugins verwenden, damit ich mehr statische Seiten auf meinem WordPress-Theme / meiner WordPress-Site bereitstellen kann. Dies ist offensichtlich die beste Leistungssteigerung, die Sie für ein WordPress-Theme / eine WordPress-Site durchführen können.

Es gibt einige dynamische Elemente in meinem Thema, die mich davon abgehalten haben, den Sprung zu statischen / zwischengespeicherten Seiten zu machen.

Ich werde diese Probleme im Folgenden skizzieren und einen möglichen Weg zur Lösung jedes Problems aufzeigen, an das ich bisher gedacht habe.

Das Ziel dieses Beitrags ist es, entweder bessere Ideen / Methoden für die Behandlung der von mir erklärten Probleme zu finden oder mir die Gewissheit zu verschaffen, dass ich zumindest auf dem richtigen Weg bin. Ich bin ein PHP-Veteran von mehr als 12-13 Jahren, benutze WordPress aber erst in den letzten 1-2 Jahren und bis jetzt bin ich wirklich beeindruckt von den Fähigkeiten. Ich bin jetzt ein totaler WordPress-Fanboy, wenn es so etwas gibt, lol!

Ok, also die Probleme, an die ich bisher gedacht habe, wenn ich in zwischengespeicherte Seiten konvertiere ...


Einzelne Beiträge Seite

  1. Views Counter Problem - Ich habe eine Funktion, die einen Zählwert für einen "View / Hit Counter" auf der Posts-Seite abruft, um einen Eindruck von den Posts Views zu bekommen, die ein Benutzer sehen kann. Dies sind keine einzelnen Besucher, sondern nur ein einfacher Trefferzähler. Ich habe eine separate MySQL-Tabelle für diese Werte erstellt. Ich versuche immer noch zu entscheiden, ob ich damit fortfahren oder stattdessen ein Metafeld verwenden soll. In beiden Fällen wird in einer Seitenansicht der Datenbankwert abgerufen und bei jedem Laden der Seite um +1 erhöht. (Administratoransichten werden nicht hinzugefügt.) Der Wert wird dann auf der Seite in Form von angezeigt988 Views

    Views Counter Mögliche Lösung - Ich könnte diesen Wert / diese Funktion mit Ajax ausführen. Sobald die neue zwischengespeicherte / statische Seite geladen ist, kann Javascript Ajax verwenden, um den Views-Zähler für diese Seite anzufordern und zu aktualisieren. Klingt dies nach der besten Lösung für so etwas?

  2. Beitragskommentare Problem - Wenn Sie das standardmäßige WordPress-Kommentarsystem verwenden, muss jedes Mal, wenn ein neuer Kommentar zu einem Beitrag hinzugefügt wird, die zwischengespeicherte / statische Seite für diesen Beitrag neu erstellt werden ! Wie ich gesehen habe, gibt es in den Caching-Plugins eine Option, mit der Sie genau das tun können. Sie können die Seite (n) jedes Mal neu erstellen, wenn ein neuer Kommentar dazu veröffentlicht wird. Auf dem Papier hört sich das gut an, aber ich kann mir vorstellen, dass es ein Albtraum in einer stark frequentierten / aktiven Site ist, in der mehrere Benutzer ungefähr zur gleichen Zeit denselben Artikel kommentieren (alle nicht getestet, daher weiß ich es nicht).

    Mögliche Lösung für das Posten von Kommentaren - Als Lösung für das Kommentarproblem habe ich oben eine Lösung erwähnt, bei der Sie das Cache-Plugin so einstellen können, dass bei jedem neuen Kommentar die zwischengespeicherte / statische Seite einfach neu erstellt wird. Mein Anliegen war mir nicht wirklich, wie gut dies auf lange Sicht funktionieren wird. Die andere mögliche Lösung, die meiner Meinung nach immer häufiger verwendet wird, ist die Verwendung einer Javascript-Lösung wie Disqus Comments oder einer ähnlichen Lösung. Ich war lange Zeit wirklich dagegen, da ich wollte, dass alle meine Kommentare nicht von Dritten für mein Kommentarsystem abhängen. Ich bin immer noch ein bisschen im Zaun über dieses Problem, habe aber auf die Verwendung von Disqus-Kommentaren auf meiner Website umgestellt und bis jetzt funktioniert es ziemlich gut. Ich bin aber offen für andere mögliche Lösungen? Oder denkst du, das ist wirklich der richtige Weg?

Site-wide Sidebar

  1. Problem mit den neuesten Artikeln in der Seitenleiste - In meiner Seitenleiste befinden sich Registerkarten, die auf jeder Seite der Website angezeigt werden. Auf einer der Registerkarten werden die 10 neuesten Beiträge im Blog geladen, da diese auf jeder Seite der Website angezeigt werden Wenn ein neuer Artikel / Beitrag hinzugefügt wird, muss jede zwischengespeicherte / statische Seite auf der Website neu erstellt werden, um das Hinzufügen neuer Beiträge zu dieser "Liste der neuesten Beiträge" wiederzugeben.

    Sidebar Aktuelle Artikel Mögliche Lösung - Ich denke wieder, ich habe eine gute mögliche Lösung gefunden. Ich könnte Javascript und Ajax verwenden, um diesen Inhalt in die zwischengespeicherten / statischen Seiten zu laden, damit sie nicht ALLE so oft neu erstellt werden müssten, aber immer noch die neuesten Beiträge anzeigen könnten.

    Klingt das nach einer guten Lösung? Oder wichtiger, können Sie sich eine andere bessere oder alternative Lösung für dieses Problem vorstellen?


Ohne mir die Hände noch zu schmutzig zu machen, sind dies die möglichen Probleme, die ich bisher bei der Konvertierung meines Themas in Cache / Static Friendly sehen kann


AKTUALISIEREN

Ich habe mir gerade ein anderes Thema überlegt. Alle Tags / Kategorien sowie Benutzerseiten müssen jedes Mal aktualisiert werden, wenn ein Beitrag hinzugefügt wird, der in die Liste der Beiträge auf dieser Seite passt. Ich gehe davon aus, dass dies ein Feature der Caching-Plugins sein muss, das ich mir allerdings schon vorstellen würde


1
Warum muss der Views Counter bei jeder Anfrage korrekt sein? Was passiert, wenn vor dem Cache-Update 5-10 Aufrufe fehlen?
Ünsal Korkmaz

Antworten:


2

Es gibt also viele Unterfragen, ich werde versuchen, jede zu beantworten.

Views Counter Problem - Ich könnte diesen Wert / diese Funktion mit Ajax ausführen. Sobald die neue zwischengespeicherte / statische Seite geladen ist, kann Javascript Ajax verwenden, um den Views-Zähler für diese Seite anzufordern und zu aktualisieren.

Völlig einverstanden: Zusätzlicher Vorteil: Laden über Ajax, wenn "wichtige" Inhalte fertig geladen sind, ist der richtige Weg. Tun Sie alles, um die Ladezeit der Seite zu verkürzen. Ich würde auf jeden Fall mit Ajax gehen.

Kommentar schreiben Problem

Ich bezweifle, dass dies ein großes Problem sein wird. Aber nochmal: Ajax. Lade Kommentare, abgesehen vom "Hauptinhalt". Lassen Sie es regelmäßig neue Kommentare veröffentlichen (genau wie Stackoverflow oder twitter.com, das den Benutzer warnt und auf seinen Klick wartet, um den Kommentar-Stream zu aktualisieren).

Site-wide Sidebar

Ich würde ein anderes Plugin verwenden: WP Widget Cache , mit dem Sie die Caching-Zeit für jedes Widget in Ihren Seitenleisten festlegen können. Es funktioniert gut mit den üblichen Caching-Plugins. In Ihrem Fall setzen Sie einfach "0" für kein Caching für diese Widgets oder "10 Minuten" (besser als überhaupt kein Caching).


1

Wenn Sie den gesamten w3-Cache verwenden, können Sie bestimmte Seiten wie Ihre Seitenleiste vom Cache ausschließen.

Gehen Sie zu WordPress Admin> Leistung> Seiten- Cache und ändern Sie den Abschnitt unter Diese Seiten niemals zwischenspeichern

Zwischenspeichern Sie niemals Seiten W3 Total Cache
In diesem Beispiel werden Seitenleistendateien in einem Design aus dem Cache ausgeschlossen.

Sie können auch eine kürzere Ablaufzeit für Ihre zwischengespeicherten Seiten festlegen, z. B. 5 oder 15 Minuten. Die zwischengespeicherten Seiten betreffen am meisten Personen, die zum ersten Mal Besucher sind und kein Sitzungscookie haben. Da die "am häufigsten angeforderte" zwischengespeicherte Ansicht der Seite zum ersten Mal anonymen Besuchern angezeigt wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.