WordPress-Blogs beschleunigen

Jeden Freitag gibt Martin ein Thema vor, wo alle Blogger eingeladen sind ihre Meinung zu äußern.
Heute ist es wieder soweit, denn heute ist Webmasterfriday.

Das heutige Thema:

Seit einiger Zeit gewichtet Google den Faktor Ladegeschwindigkeit immer höher. Nicht ohne Grund, denn im Internet dreht sich alles immer schneller – und man erwartet inzwischen, dass eine Website oder ein Blog schnell geladen ist. Welche Möglichkeiten gibt es, um den Blog zu beschleunigen? Welche Plugins sind nützlich? Womit habt ihr gute und womit ev. schlechte Erfahrungen gemacht? Was könnt ihr empfehlen? Und gibt es Tricks, wie man unabhängig von technischen Plugins die Ladegeschwindigkeit bzw. eventuelle Wartezeit verbessern kann? Ich sage nur: Widgets, Webkatalog-Icons oder Social-Sharing-Integration …

Im Zuge der neulichen Umgestaltung meines Blogs habe ich mich natürlich auch mit dem Thema Geschwindigkeit beschäftigt.
Vor der Änderung hatte ich sagenhafte 15 Plugins aktiv, die bei jedem Seitenaufruf geladen worden…das merkte man auch.
Also deaktivierte ich alles unnötige und bin mittlerweile bei 5 Plugins angelangt, eine Zahl, die man so belassen kann denke ich.
Der Blog ist spürbar schneller geworden, auch nach der Aktivierung der gzip-Kompression.

 
Ich finde die gzip-Kompression garnicht in meinen Einstellungen?!

Das stimmt. Rufe dazu einfach folgende Adresse auf: http://deineurl.de/wp-admin/options.php und suche dort nach gzip.
Trage in das Feld eine 1 ein, wo vorher eine 0 stand und speichere alles ab.
Aber Vorsicht: Auf dieser Optionsseite kann man viel kaputt machen, ändere sonst keine Einstellung!

 

Zurück zum Thema: Auch in den Google Webmastertools wird mir gezeigt das die Änderung Wirkung erzielten. Google lädt meine Seite nun schneller. Juhu!

Ich blende ja auch Werbung ein auf meiner Seite. Der Banner oben ist statisch eingebunden und wird normal als Bild geladen.
Doch man merkt, dass die Google AdSense Werbung später geladen wird. Wieso?
Weil Google der Werbung das kleine Stichwort async mit auf dem Weg gibt. Async bedeutet nichts anderes, als das die Werbung unabhängig von der Seite lädt und angezeigt wird,
sobald der Ladevorgang beendet ist. So muss der Nutzer nicht länger warten wegen der Werbung…das wäre ein Desaster.

Ob ein Cache Plugin für WordPress nützlich ist, kann ich nicht sagen. Ich hatte mal eins aktiv, konnte aber keine Verbesserung feststellen und habe es wieder entfernt.
Eventuell kann da ein anderer Blogger mehr zu sagen?

Das war mein Beitrag zum heutigen Webmasterfriday.
Man liest sich!

WMF: Fitnessgagdets – sinnvoll oder nutzlos?

Webmasterfriday

 

Es ist wieder soweit. Es ist Freitag und der WebmasterFriday steht an.
Jeden Freitag gibt es ein Thema zu dem alle Blogger eingeladen sind ihre Meinung nieder zuschreiben.
Das heutige Thema lautet: Fitnessgagdets – sinnvoll oder nutzlos?

 

 

Wieso dieses Thema?
Erstmal möchte ich zu einer anderen Sache etwas kurzes sagen.
Dies ist meine zweite Teilnahme am WMF und ich dachte, ich schlag‘ direkt mal ein Thema vor.
Es freut mich das mein Thema auch für diesen WMF ausgewählt wurde.

Was gibt es eigentlich für Gagdets?
Um erst einmal einen Überblick zu bekommen, habe ich kurzerhand Google bemüht und ca. 23.300.000 Ergebnisse bekommen.
FG1

Es gibt also viel zu schreiben zu diesem Thema.

Ich denke man muss die Gruppe der Fitnessgagdets in zwei Gruppen teilen: Einmal die professionellen Geräte und einmal die Lifestyle Geräte.
Zu den professionellen Geräten würde ich die ganzen Pulsuhren zählen, eine Bekannte von mir trägt eine Pulsuhr von Polar und ist damit sehr zufrieden.
Die Lifestyle Geräte sind m.E. nach die Fitnessarmbänder, wie sie momentan hoch im Kurs sind, z.B. von Jawbone, Nike oder fitbit.

Nutzlos oder Sinnvoll? Was bringen mir diese Geräte?
Nun, das muss natürlich jeder für sich selbst entscheiden.
Ich denke gerade für Läufer und/oder professionelle Sportler sind die Pulsuhren gut geeignet. Meist besitzen diese noch Zubehör, wie einen Brustgurt zur genauen Messung.
Die Uhren sind aber recht teuer und brauchen ein gewisses Know-How, wie man die Daten auswertet.
Die Lifestyle Bänder sind eher für den „Otto-Normal-Bürger“ gedacht, der etwas für seine Gesundheit tun will.
Screenshot_2014-01-27-10-19-00Nein, das Band macht einen nicht schlanker, aber es führt einen den eigenen Lebensstil vor Augen,
denn die meisten Bänder haben eine schicke App oder Webauswertung dabei und bieten damit einen höheren Komfort für den Nutzer.
Ebenfalls kann man bei den meisten Bändern seine Essgewohnheiten eintragen (bzw. Portale, wie MyFitnessPal, verbinden) und somit
eine genaue Gegenüberstellung generieren. Jawbone macht das beispielsweise mit hübschen Balken.
Ich als un-versierter Nutzer kann also recht einfach meine Ess- und Bewegungsaktivitäten im Auge behalten und steuern.

Nutze ich sowas?
Ja, ich habe mir auch vor einigen Woche ein Band gekauft. Ein Jawbone UP (affliate link) um genau zu sein.
Daher kann ich sagen, dass diese Bänder durchaus ihre Daseinsberechtigung haben.
Seit ich das UP habe, ernähre ich mich viel bewusster. Kombiniert haben ich das UP übrigens mit dem Portal MyFitnessPal, welches noch genauere Ernährungsanalysen anbietet.
Um im Team abnehmen macht doch gleich viel mehr Spaß 😉

Fazit
Ja, Fitnessgagdets sind nach meiner Meinung sinnvoll. Sie helfen mir mich bewusster zu ernähren und mehr zu bewegen.
Ob man nun zwischen 100€ und 200€ für ein Band oder eine Uhr ausgeben will, sei jedem selbst überlassen.
Meine Empfehlung ist klar das UP (Link zum Review), was aber sicher daran liegt, dass ich das Band seit Wochen nutze.
Aber auch das fitbit ist sicher einen Blick wert und am Nike+ FuelBand würde mich das Display reizen.

Wie ist nun eure Meinung? Tragt ihr auch ein Fitnessband?
Schreibt es in die Kommentare oder nehmt doch auch am Webmasterfriday teil.
Viel Spaß beim Diskutieren, ich freue mich auf eure Antworten.

 

 

 

 

Plugin in PHP – Klasse in OOP

Wie ich angekündigt habe, möchte ich euch meine Pluginklasse erneut vorstellen.
Diesmal aber in OOP.

Damit jedes Plugin verbindliche Klassen zur Verfügung stellt, erstellen wir ein Interface:

Datei IgPlugin.php

<?php
	interface IgPlugin
	{

		public function getName();
		public function setName($name);

		public function getVersion();
		public function setVersion();

		public function getAutor();
		public function setAutor();

		public function install();
		public function update($version);
		public function unistall();

		public function run();
	}
?>

Das Plugin ist dann folgendermaßen aufgebaut:

</pre>
<?php

	require_once("class/IgPlugin.php");
	
	class test implements IgPlugin
	{
		private $name = "TestPlugin";
	
		public function getName() { return $this->name; }
		public function setName($name){}
		
		public function getVersion(){}
		public function setVersion(){}
		
		public function getAutor(){}
		public function setAutor(){}
		
		public function install(){}
		public function update($version){}
		public function unistall(){}
		
		public function run(){ echo "Plugin l&auml;uft"; }
	}
	
?>

Die Datei gPlugin.php ist nun die Klasse für das Laden der Plugins:


<?php
	
	/**
	 * Klasse gPlugin
	 *
	 * Klasse zum Starten, Installieren, Updaten und Deinstallieren
	 * von Plugins
	 *
	 * @author Alexander Grüßung
	 * @version 2.0
	 */
	 
	class gPlugin
	{
		/**
		 * private field
		 */
		private $pluginName;
		
		/**
		 * private field
		 */
		private $pluginInstance;
	
		/**
		 * Konstruktor lädt Plugin in den Speicher
		 */
		public function __construct($pluginName)
		{
			$this->setPluginName($pluginName);
			$this->loadPlugin();
		}
		
		//Getter und Setter für PluginName
		private function setPluginName($pN) { $this->pluginName = $pN; }
		private function getPluginName() { return $this->pluginName; }
		
		//Getter und Setter für PluginInstance
		private function setPluginInstance($instance) { $this->pluginInstance = $instance; }
		private function getPluginInstance() { return $this->pluginInstance; }
	
		/**
		 * Funktion bindet Plugindatei ein und
		 * lädt Instanz in den Speicher
		 */
		private function loadPlugin()
		{
			if (file_exists($this->getPluginName().".php"))
			{
				require_once($this->getPluginName().".php");
				$name = $this->getPluginName();
				$this->setPluginInstance(new $name());
				
				if ( ($this->getPluginInstance() instanceof IgPlugin) == false)
				{
				 trigger_error("Interner Pluginfehler: Interface wird nicht implementiert", E_USER_ERROR);
				}
				
			}
			else
			{
				trigger_error("Plugin nicht gefunden", E_USER_ERROR);
			}
		}
		
		/**
		 * Plugin starten
		 */
		public function runPlugin()
		{
			//TODO Prüfen ob Plugin installiert ist
			$this->getPluginInstance()->run();
		}
	
	}
?>

Hier eine Beispieleinbindung:

<?php
	require_once("class/gPlugin.php");
	
	$p = new gPlugin("test");
	$p->runPlugin();
	
?>

 
Damit viel Spaß mit der Klasse!