Dieses Plugin ist nicht mit den jüngsten 3 Hauptversionen von WordPress getestet worden. Es wird möglicherweise nicht mehr gewartet oder unterstützt und kann Kompatibilitätsprobleme haben, wenn es mit neueren Versionen von WordPress verwendet wird.

WP Performance Pack

Beschreibung

WP Performance Pack ist die erste Wahl zur Beschleunigung des WordPress-Cores ohne umständliches Patchen. Das Plugin bietet Funktionen zur schnelleren Übersetzung von WordPress und verbesserte Bildverarbeitung (schnellerer Upload, geringerer Webspace-Verbrauch, dynamisch erzeugt Zwischengrößen). Kombiniert mit der vorhanden CDN-Unterstützung für Front- und Backend ähnelt die verbesserte Bildbearbeitung der Funktionalität von Jetpacks Photon.

Features

CDN-Unterstützung

  • Dynamisch erzeugte Bildzwischengrößen per CDN ausliefern, sowohl im Backend, als auch im Frontend. Zwischengrößen müssen so nicht lokal gespeichert werden.
  • Automatische Verwendung lokaler Bilder, wenn das CDN nicht funktioniert.
  • Dynamische Bild-URLs: Bild-URLs werden dynamisch beim Anzeigen eines Beitrags erzeugt.
  • Unterstützte CDNs: CoralCDN, MaxCDN, eigene

Verbesserte Bildverarbeitung

  • Bildzwischengrößen nicht direkt beim Upload erzeugen.
  • Dynamisches Erzeugen von Bildzwischengrößen.
  • Erzeugte Zwischengrößen können gecachet oder gespeichert werden, um nachfolgende Zugriffe zu beschleunigen.
  • Wenn vorhanden, EXIF-Vorschaubilder zum Erzeugen von Zwischengrößen benutzen. Dies reduziert Speicherverbrauch und CPU-Last, da die Quelle für die Zwischengröße deutlich kleiner ist.
  • Anpassung der Bildqualität für Zwischengrößen.
  • Integration in diverse Regenerate-Thumbnails-Plugins, um bereits vorhandene, gespeicherte Bildzwischengrößen zu löschen. Unterstütze Plugins: Regenerate Thumbnails, AJAX Thumbnail Rebuild, Simple Image Sizes

Verbesserung der Übersetzungsgeschwindigkeit

  • Einfache Einstellungen zum Verwenden der besten, verfügbaren Optionen.
  • Dynamisches Laden von Übersetzungsdateien. Nur benötigte Texte werden geladen.
  • Verwendung der PHP-Gettext-Erweiterung, wenn verfügbar.
  • Übersetzung des Backends deaktivieren, während auf dem Frontend weiter übersetzt wird.
  • Benutzer können die Backend-Übersetzung über ihr Profil wieder aktivieren.
  • Just-In-Time-Übersetzung von Javascript-Variablen (benötigt WordPress ab Version 4.7.4).
  • Caching verbessert die Übersetzungsgeschwindigkeit weiter. Hierzu muss ein persistenter Object-Cache installiert sein.
  • Debug Bar-Integration

WordPress-Features ändern oder deaktivieren

  • Header-Elemente abschalten, z.B. Generator-Name, Feed-Links und mehr
  • Heartbeat-Einstellungen anpassen
  • Edi-Lock deaktivieren
  • Emoji-Unterstützung deaktivieren
  • Verwendung einer persistenten Datenbankverbindung

Screenshots

  • Nicht benötigte Module können komplett deaktiviert werden (v2.0)
  • Verbesserte Bildverarbeitung, einfache Ansicht (v2.0)
  • Verbesserte Bildverarbeitung, erweiterte Ansicht (v2.0)
  • Verbesserung der Übersetzungsgeschwindigkeit, erweiterte Ansicht (v2.0)
  • Ändern oder Deaktivieren von WordPress-Features, erweiterte Ansicht (v2.0)
  • Debug Bar-Integration (v1.0)
  • MO_dynamic-Benchmark: Vergleich der Ladezeiten einer sauberen Installation von WordPress 3.8.1 mit unterschiedlichen Konfigurationen. Wie zu sehen ist MO_dynamic mit aktiviertem Caching fast so schnell, wie die Verwendung von nativem Gettext. Die Werte wurden mit WPPP Version 0.6 ermittelt. Durchschnittswerte aus vier Durchläufen, gemessen mit XDebug.

Installation

Benötigt PHP >= 5.3 und WordPress >=3.8.1

  • Herunterladen, installieren, aktivieren.
  • Native Gettext-Unterstützung benötigt die PHP-Gettext-Erweiterung und Schreibrechte auf dem Ordner wp-content/wppp/localize.
  • Caching bietet nur dann Vorteile, wenn ein persistenter Object-Cache installiert ist.
  • Für Debugging muss das Plugin Debug Bar installiert und aktiviert sein.

FAQ

Installationsanweisungen

Benötigt PHP >= 5.3 und WordPress >=3.8.1

  • Herunterladen, installieren, aktivieren.
  • Native Gettext-Unterstützung benötigt die PHP-Gettext-Erweiterung und Schreibrechte auf dem Ordner wp-content/wppp/localize.
  • Caching bietet nur dann Vorteile, wenn ein persistenter Object-Cache installiert ist.
  • Für Debugging muss das Plugin Debug Bar installiert und aktiviert sein.
Wie kann ich erkennen, ob das Caching funktioniert?

Der Cache wird nur benutzt, wenn die alternative MO-Implementierung verwendet wird. Zum Überprüfen, ob der Cache verwendet wird, aktiviere das WPPP-Debugging (benötigt das Plugin Debug Bar). Dies fügt der Debug Bar eine neue Seite WP Performance Pack hinzu. Auf dieser werden u.a. Informationen über aus dem Cache geladene Übersetzungen angezeigt.

Welche Object-Cache-Plugins werden empfohlen?

Jeder persistente Object-Cache funktioniert, allerdings muss er vom Webserver unterstützt werden. Prüfe, ob Caches wie APCu, XChache, Memcache o.ä. auf dem Webserver installiert sind und wähle ein entsprechendes Cache-Plugin. Datei oder Datenbank basierte Caches funktionieren ebenfalls, wirken sich aber weniger positiv auf die Geschwindigkeit aus.

Unterstützt WPPP Multisite-Installationen?

Die Verbesserungen der Übersetzung funktionieren auch mit Multisite-Installationen. Wird WPPP netzwerkweit installiert, kann nur der Netzwerk-Admin die WPPP-Einstellungen sehen und bearbeiten. Die verbesserte Bildbehandlung ist nur verfügbar, wenn WPPP netzwerkweit installiert ist.

Was ist der Unterschied zwischen dem Plugin Dynamic Image Resizer und WPPPs dynamischen Bildgrößen?

In den ersten Versionen basierte WPPPs dynamische Bilderzeugung auf dem Plugin Dynamic Image Resizer, lediglich mit ein paar kleinen Änderungen. Die erste große Änderung bestand darin, Rewrite-Regeln statt des 404-Handlers für die Erzeugung der Zwischengrößen zu verwenden. Mit WPPP 1.8 kam die Verwendung von Ableitungen von WP-Image-Editor, um das Erzeugen von Zwischengrößen beim Upload zu verhindern. Diese Methode ist deutlich effektiver und funktioniert auch beim Bearbeiten von Bildern.

Laut Autor ist Dynamic Image Resizer lediglich ein Proof-Of-Concept. WPPPs dynamische Bilderzeugung könnte man als funktionierende Implementierung dieses Proof-Of-Concepts bezeichnen.

Wie repariere ich meine Bilder, wenn diese nach Verwendung der dynamischen Links nicht mehr funktionieren?

Zuerst solltest Du die Funktion „Statische URLs wiederherstellen“ in den WPPP-Einstellungen versuchen. Diese Funktion wird auch automatisch beim Deaktivieren von WPPP ausgeführt. Falls dabei Fehler auftreten (wenn ja, bitte die Fehler im Support-Forum posten, damit ich die Funktion entsprechend anpassen kann), kannst Du die folgende SQL-Funktion direkt verwenden, um die Links wiederherzustellen:

UPDATE wp_posts SET post_content = REPLACE ( post_content, ‚{{wpppdynamic}}‘, ‚http://your.base-url/wp-content/uploads/‘ )

Die Basis-URL (dritter Parameter von REPLACE) muss durch Deine Basis-URL ersetzt werden!

Funktionsweise der Übersetzungs-Beschleunigung.

WPPP überschreibt WordPress‘ Standardimplementierung über den Hook override_load_textdomain. Die schnellste Übersetzungsmethode ist die Verwendung von nativem Gettext. Hierfür wird die PHP-Erweiterung Gettext benötigt. WPPPs Gettext-Implementierung basiert auf Bernd Holzmuellers Translate_GetText_Native.

Als zweite Möglichkeit bietet WPPP einen komplett neu geschriebenen MO-Reader (MO_dynamic bzw. alternativer MO-Reader). Der WordPress eigene MO-Reader lädt immer komplette Übersetzungsdateien in den Speicher, auch wenn nur eine einzige Übersetzung davon verwendet wird. Dies kostet Zeit und Speicherplatz. MO_dynamic lädt nur verwendete Übersetzungen in dem Moment, wenn sie verwendet werden. Auch wenn die gezielte Suche nach einzelnen Übersetzungen etwas langsamer ist, sorgt die deutlich schnellere Ladezeit und der geringere Speicherverbrauch insgesamt für eine wesentlich schnellere Übersetzung.

Die Verwendung eines Caches kann die Geschwindigkeit weiter erhöhen. Wird der alternative MO-Reader verwendet, werden Übersetzungen über WordPress‘ Object-Cache-API gecachet. Frontend-Seiten verwenden üblicherweise wenige Übersetzungen, daher wird für alle Frontend-Seiten ein Cache verwendet. Backend-Seiten hingegen verwenden meist viele Übersetzungen, weshalb jede Backend-Seite ihren eigenen Cache verwendet, mit einem extra Basis-Cache pro Textdomain. Dieser Basis-Cache enthält diejenigen Übersetzungen, die auf allen Backend-Seiten verwendet werden (Übersetzungen, die vor dem Ereignis admin-init verwendet wurden). Dies dient dazu, die Cache-Größe zu verringern, da diese häufig recht begrenzt ist. Um die Größe noch weiter zu reduzieren, werden die Übersetzungen komprimiert, bevor sie gecachet werden.

Funktionsweise der dynamischen Bildzwischengrößen.

Zwischengrößen von Bildern werden nicht beim Upload erzeugt. Statt dessen werden die Bilder und die dazugehörigen Metadaten erst beim jeweiligen ersten Zugriff erzeugt. Dazu leitet WPPP alle registrierten WP-Image-Editor-Klassen ab und überschreibt die Funktion multi_resize. Da die Ableitung dynamisch erfolgt, funktioniert dies mit jeder Image-Editor-Implementierung. Die Zwischengrößen werden dann über Rewrite-Regeln erzeugt. Wird auf eine nicht existierende Zwischengröße zugegriffen, wird die Anfrage auf eine spezielle PHP-Datei umgeleitet, die nur ein Minimum an WordPress-Code lädt. Die Umleitung erfolgt über die htaccess-Datei.

Wenn ein nicht existierendes Bild angefordert wird, prüft WPPP ob die angeforderte Bildgröße einer der registrierten Bildgrößen entspricht (entweder eine der Standardgrößen „thumbnail“, „medium“ oder „large“ oder eine andere, von Plugins oder vom Theme registrierten Zwischengrößen). Hieran erkennt WPPP auch, ob das Bild beschnitten werden soll, oder nicht.

Rezensionen

Lies alle 10 Rezensionen

Mitwirkende & Entwickler

„WP Performance Pack“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

„WP Performance Pack“ wurde in 1 Sprache übersetzt. Danke an die Übersetzerinnen und Übersetzer für ihre Mitwirkung.

Übersetze „WP Performance Pack“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN Repository an oder abonniere das Entwicklungsprotokoll per RSS.

Änderungsprotokoll

2.0.5

  • [dynimg] Bugfix in wp_get_attachment_meta filter
  • [cdn] Bugifx in CDN down warning
  • [mo-dynamic] Futher performance improvements
  • [mo-dynamic] Added improvements by @mte90
  • [jit] Support for WordPress 4.8.1 added

2.0.4

  • [jit] Unterstützung für WordPress-Versionen vor 4.7 entfernt
  • Anpassungen für Texte und Übersetzungen

2.0.3

  • [jit] Bugfix: Eine Skripte wurden nicht übersetzt.
  • [wpfeatures] NEU! Heartbeat-Frequenz hinzugefügt.

2.0.2

  • [mo-dynamic] Bugfix: Übersetzungen mit Kontext schlugen fehl.
  • Text- und Readme-Änderungen

2.0

Das letzte Update ist schon eine ganze Weile her. In all der Zeit habe ich viel an WPPP gearbeitet, allerdings nie ein Update veröffentlich. Die folgende Liste der Änderungen seit der Version 1.10.4 dürfte daher recht lückenhaft sein. Vorsicht bei der Verwendung auf Multisite-Installationen! Version 2.0 ist nicht mit Multisite getestet.

  • [wpfeatures] NEU! Neues Modul „WP-Features“ erlaubt das Ändern oder Deaktivieren von WordPress-Features, z.B. Emoji-Unterstützung, Edit-Lock und diverser Header-Elemente.
  • [dynimg] NEU! EXIF-Unterstützung für ImageMagick.
  • [dynimg] NEU! All registrierten Zwischengrößen werden verwendet, unabhängig von den Bild-Metadaten
  • [dynimg] NEU! Beim Upload werden keine Meta-Daten für Zwischengrößen erzeugt. Erst wenn eine entsprechende Zwischengröße erzeugt und gespeichert wird, werden auch die dazugehörigen Meta-Daten erzeugt.
  • [jit] Unterstützung für WordPress-Versionen 4.7.4, 4.7.5 und 4.8 hinzugefügt.