Category Archives: Tips, Tricks, Ideen

WordPress schneller machen #2: Performance-Bremsen ermitteln

Guten Tach!

Im ersten Teil habe ich ein paar Tools vorgestellt, mit denen man eine WordPress-Seite schneller machen kann…man würde ihr sozusagen um 10:30h einen Kaffee bringen. Was aber wenn sie vor Trägheit noch nicht einmal aus dem Bett kommt? Ist sie vielleicht zu schwerfällig? Haben wir zuviele Plugins an Bord? (Aber ich brauche doch alle 47 davon!). Müssen wir mal nachsehen…

Eine Spurensuche mit Sherlock McWoyng.

P3 in Action

P3 in Action…früher mal…

P3 (Plugin Performance Profiler)

Eigentlich war dieses Plugin immer mein Favorit…man konnte genau sehen, welches Plugin wieviel Performance an sich reißt.

Nur leider funktioniert das ganze nicht mehr, zumindest nicht be mir…P3 scannt sich ausschließlich selbst, und mittlerweile erhalte ich nur noch PHP-Fehler. Im Support-Forum scheint niemand zu antworten. Schade.

Muß also eine Alternative her!

Alternative List

Ich suche eine Alternative zu P3 mit der Seite

Alternativen zu P3

Simple Debug

Nein, bringt mir leider nichts…ich sehe alle möglichen Informationen, aber kann nicht feststellen, welches Plugin die Site ausbremst. Also weitersuchen…

Performance Profiler

Bringt mir leider auch nichts. Schade.

Also gut…there is obviously no easy solution…also müssen wir tiefer graben. Fragen wir doch das Insekt unseres Vertauens:

Firebug

Firebug öffnen, Rechtsklick auf die Seite und „Element untersuchen“, dann „Netzwerk“, Seite neu laden und mal nachsehen.

Aha!

Ach nee!

Wow!

Man sieht, daß sich die Startseite mit Google Maps verbinden möchte…was sie aber gar nicht bräuchte, weil es auf der Startseite gar keine Karte gibt! und das kostet wertvolle (Milli-)Sekunden.

Muß ich in dem Karten-Plugin abschalten! Die Stelle finden, an der der Google-Maps-JavaScript-Code eingebunden wird, und dann eine Abfrage machen, damit auf der Startseite keine sinnlose Map-Abfrage stattfindet. Etwa in der Art von:

Vorher:
$binde_kartenlink_ein;

Nachher:
if ($seite_auf_der_ich_bin != "Startseite")
   {
   $binde_kartenlink_ein;
   }

Gut…das mache ich jetzt mal.

*ärmelhochkrempel*

Fortsetzung folgt…

WordPress-Theme übersetzen

Eine leichtverständliche Anleitung zum Übersetzen eines Themes.

  1. Das Programm Poedit downloaden und installieren: http://www.poedit.net/download.php
  2. Im Ordner des zu übersetzenden Themes /wp-content/themes/meintheme einen Unterordner languages suchen und die Datei default.po mit Poedit öffnen. Jetzt sieht man alle englischen Texte, die im theme verwendet werden.
  3. Die Texte übersetzen und danach speichern. Jetzt wird eine Datei default.mo erstellt. Diese Datei entsprechend den Sprachcodes umbenennen  Für Deutsch wäre das dann de_DE.mo. Man kann die Codes hier finden (unter WP LOCALE).
  4. Die Datei de_DE.mo in den Ordner /languages unseres Themes hochladen., also (vermutlich) nach  /wp-content/themes/meintheme.
  5. In der wp-config.php nachsehen, ob der WPLANG-Parameter gesetzt ist: define (‚WPLANG‘, ‚de_DE‘);
  6. Jetzt sollte das Theme eure Sprache sprechen.

Wenn bei Punkt 2 die Datei default.po nicht da ist, sondern eine default.pot-Datei…dann wirds etwas komplizierter. ..das erkläre ich dann später :-)

WordPress-Plugins: Update verhindern

Immer wieder gibt es Updates, die immer auch schnell installiert werden wollen: WordPress selbst, Themes und auch Plugins.

Blöd ist nur: Nach einem solchen Update sind eigene Anpassungen weg!

Bei WordPress selbst, in den Core-Dateien, ist das weniger problematisch…darin sollte man sowieso nicht selbst rumwurschteln, sonden auf Hooks und Filter zurückgreifen.

Bei Themes kann man mit Hilfe eines Child-Themes die selbstprogrammierten Anpassungen vor dem Update retten.

Und bei Plugins? Es gibt ja (noch?) keine Child-Plugin-Technik. Also muß man den Ordner des jeweiligen Plugins vor dem Update sichern, und die eigenen Anpassungen und Änderungen mit einem „Diff-Tool“ wie z.B. WinMerge wieder in die neue Version einkleben.

Oft klappt das auch, weil sich von Version 1.802 zu 1.803 vielleicht außer einem Bugfix und der hinzugekommenen mongolischen Sprachunterstützung nichts geändert hat.

Es gibt aber auch Plugins, bei denen in der neuen Version wirklich sehr viel geändert wurde und kein Stein auf dem anderen blieb. Da macht das Quellcode-Mergen mit WinMerge o.ä. bestenfalls nur keinen Spaß. Schlimmstenfalls geht es gar nicht.

Also was tun?

Die Antwort kommt aus der Schweiz, von Walter!

Einfach durch Änderung der Versionsnummer Plugin-Updates verhindern!

Das geht so:

1.) Plugins – Editor – und rechts oben das gewünschte Plugin wählen. Ich habe mal „Hello Dolly“ genommen.

2.) In der jetzt erscheinenden Liste der PHP-Dateien die richtige suchen. Sie heißt meistens genauso wie das Plugin und ist odftmals auch die einzige PHP-Datei. In unserem Fall ist es „hello.php“.

3.) Diese Datei öffnet sich jetzt im Editor. Oben stehen ein paar wichtige Kommentare im Header, wie z.B. diese hier:

/*
Plugin Name: Hello Dolly
Plugin URI: http://wordpress.org/plugins/hello-dolly/
Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
Author: Matt Mullenweg
Version: 1.6
Author URI: http://ma.tt/
*/

4.) In der Versions-Zeile, wo jetzt „Version: 1.6“ steht, einfach eine riesige Zahl eintragen, so daß es z.B. später „Version: 100006000“ heißt.

5.) Speichern und fertig.

Danke Walter!

Out of Memory error in simplepie.php

Es passiert immer wieder, daß WordPress-Seiten einige Zeit lang gut liefen, aber plötzlich mehr Speicherplatz brauchen.

Im Admin-Bereich sieht man dann im Dashboard oftmals bei „WordPress-Nachrichten“ folgende Meldung:

Fatal error: Out of memory (allocated xxxxxxxx) (tried to allocate yyyyyyyy bytes) in .../wp-includes/class-simplepie.php on line zzz

Ich weiß derzeit noch nicht, wie man herausfinden kann, was genau den Speichermangel verursacht hat.

Aber man kann ihn beheben, indem man in /wp-includes/cache.php direkt nach dem öffnenden <?php in Zeile 1 einträgt:

ini_set('memory_limit','64M');

und wenn’s nicht reicht darfs auch ein Hauch mehr sein:

ini_set('memory_limit','128M');

Um rechtzeitig Speicherprobleme zu erkennen kann man sich ein simples und schönes Plugin installieren:

WP-Memory-Usage

Mehr dazu in diesem Artikel!

WordPress-Mailprobleme beheben

Es kann durchaus mal passieren, daß WordPress keine Mails mehr verschickt.

Am besten ist es noch, wenn ein Plugin, etwa Contact Form 7, meldet, daß eine Mail nicht verschickt werden konnte, und man soll sich doch an den Administrator wenden.

Schön, wenn es einen Administrator gibt, der das ganze für uns löst. Dumm nur, wenn wir (wie in den meisten Fällen) selbst der Administrator sind.

Also…was tun?

1.) Kann WordPress selbst noch mailen?

Das findet man raus, indem man im Anmeldedialog auf „Passwort vergessen“ klickt. Dann sollte eigentlich eine Mail verschickt werden. Wenn sie ankommt sind wir ein bißchen weiter…dann kann WordPress mailen, aber unser Plugin nicht.

2.) Ein anderes Plugin probieren.

In meinem Fall wurde das Problem durch ein anderes Kontaktformular behoben: Fast Secure Contact Form

3.) Maileinstellungen ändern mit WP Mail SMTP

Das Plugin WP Mail SMTP stellt auf Wunsch diE Mailingfunktion von WordPress um…statt dem internen Mailer, der standardmäßig auf die PHP-Funktion mail() zugreift, kann man auf SMTP-Versand umstellen (man braucht natürlich Zugangsdaten für den Mailserver).

Hier kann man jetzt mit unterschiedlichen Maileinstellungen experimentieren. Es kommt nämlich vor, daß Provider ihre Zugangsmodalitäten ändern, um Spam abzuwehren.

Mögliche Lösungen:

  • Absender-Mailadresse muß zur jeweiligen Domain gehören.
  • Reply-To-Mailadresse muß dieselbe sein wie Absender-Mailadresse.

Das schöne an WP Mail SMTP ist Möglichkeit, sich selbst eine Testmail zu schicken, inkl. Debug-Funktion mit allen Infos, die man braucht.