<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>techspread &#187; WordPress</title>
	<atom:link href="http://www.techspread.de/kategorie/software/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.techspread.de</link>
	<description></description>
	<lastBuildDate>Sat, 11 Feb 2012 00:13:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Von FeedBurner zurück zum originalen Feed</title>
		<link>http://www.techspread.de/8466/von-feedburner-zurueck-zum-originalen-feed</link>
		<comments>http://www.techspread.de/8466/von-feedburner-zurueck-zum-originalen-feed#comments</comments>
		<pubDate>Sun, 29 Jan 2012 12:00:56 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Feedburner]]></category>
		<category><![CDATA[Newsfeed]]></category>
		<category><![CDATA[Umzug]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=8466</guid>
		<description><![CDATA[FeedBurner verfügt über eine eingebaute Möglichkeit, um wieder zu seinem Originalfeed zu wechseln und die Abonnenten darüber zu benachrichtigen.]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Tagen hat mich Jeffrey mit seinem <a href="http://infoblog.li/die-sache-mit-dem-rss-feed-ist-feedburner-tot/">Artikel über FeedBurner</a> wieder daran erinnert, dass ich den Dienst schon vor längerem ablösen wollte, um meine Artikel wieder direkt über WordPress auszuliefern und damit volle Kontrolle über meinen Feed zurück zu erlangen. Dieser Artikel zeigt, wie ich die Migration aktuell durchführe.<span id="more-8466"></span></p>
<p>Glücklicherweise bietet FeedBurner selbst eine geeignete Funktion an, um wieder auf den originale Feed zu migrieren. Logge dich einfach bei FeedBurner ein und und klicke oben auf <em>Delete Feed&#8230;</em> FeedBurner blendet dann folgende Box ein, bei der du unbedingt darauf achtest, dass die Option <em>Use 30 days redirection</em> ausgewählt ist und erst dann auf <em>Delete Feed</em> klickst:</p>
<p><a href="http://www.techspread.de/wp-content/uploads/feedburner-delete-feed.png" rel="lightbox[8466]"><img class="aligncenter size-large wp-image-8507" title="FeedBurner Delete Feed..." src="http://www.techspread.de/wp-content/uploads/feedburner-delete-feed-600x196.png" alt="" width="600" height="196" /></a></p>
<p>Wenn du auf <em>Learn more&#8230;</em> klickst, erfährst du auch, was hinter der Option steckt:</p>
<p><a href="http://www.techspread.de/wp-content/uploads/feedburner-delete-feed-learn-more.png" rel="lightbox[8466]"><img class="aligncenter size-full wp-image-8508" title="FeedBurner Delete Feed... Learn more..." src="http://www.techspread.de/wp-content/uploads/feedburner-delete-feed-learn-more.png" alt="" width="582" height="361" /></a></p>
<p>Übersetzt heisst das: die ersten 15 Tage wird FeedBurner alle Anfragen zu dem originalen Feed umleiten. Von Tag 16 bis 30 liefert FeedBurner die Meldung aus, dass der Feed umgezogen ist (inklusive Angabe der neuen URL). Nach den 30 Tagen wird der Feed endgültig deaktiviert und der Besucher bekommt nurnoch eine Fehlermeldung zurück.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/8466/von-feedburner-zurueck-zum-originalen-feed/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Größe der Yoko-Kopfgrafik anpassen</title>
		<link>http://www.techspread.de/7564/groesse-der-yoko-kopfgrafik-anpassen</link>
		<comments>http://www.techspread.de/7564/groesse-der-yoko-kopfgrafik-anpassen#comments</comments>
		<pubDate>Sun, 14 Aug 2011 18:05:33 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Child-Theme]]></category>
		<category><![CDATA[YOKO]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=7564</guid>
		<description><![CDATA[Ab heute hat mein Blog wieder eine Kopfgrafik. Mit der neuen Grafik sollte wohl auch sofort klar werden, welche Themen hier im Blog hauptsächlich behandelt werden. Da ich das Yoko Theme von elmastudio nutze, musste jedoch die Kopfgrafik verkleinert werden, um meinen Anforderungen zu entsprechen. Um die Kopfgrafik zu verkleinern, legt man zunächst ein Child-Theme [...]]]></description>
			<content:encoded><![CDATA[<p>Ab heute hat mein Blog wieder eine Kopfgrafik. Mit der neuen Grafik sollte wohl auch sofort klar werden, welche Themen hier im Blog hauptsächlich behandelt werden. Da ich das Yoko Theme von elmastudio nutze, musste jedoch die Kopfgrafik verkleinert werden, um meinen Anforderungen zu entsprechen.<span id="more-7564"></span></p>
<p>Um die Kopfgrafik zu verkleinern, legt man zunächst ein <a href="http://bueltge.de/wordpress-child-themes-verstehen/1192/">Child-Theme</a> an (falls nicht bereits geschehen). Das Yoko Theme verwendet zwei Konstanten, um die Größe der Kopfgrafik zu bestimmen. Diese Konstanten überschreibt man dann einfach in der <em>functions.php</em> des Child-Themes. Um die Höhe der Kopfgrafik zu verändern, muss die Konstante <em>HEADER_IMAGE_HEIGHT</em> überschrieben werden. Die Breite wird dann logischerweise über die Konstante <em>HEADER_IMAGE_WIDTH</em> definiert. Da ich nur die Höhe auf 150px verändern wollte, habe ich folgendes in meine functions.php eingetragen:</p>
<pre class="brush:php">&lt;?php
	define('HEADER_IMAGE_HEIGHT', 150);
?&gt;</pre>
<p>Für die Breite geht man natürlich unter Angabe des anderen Konstanten-Namens genauso vor. Wer noch den Strich unter der Kopfgrafik loswerden möchte, muss folgendes zu der style.css des Child-Themes hinzufügen:</p>
<pre class="brush:css">#wrap {
	border-top: none;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/7564/groesse-der-yoko-kopfgrafik-anpassen/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Webanwendung zur Auswertung von Gewinnspielen in WordPress</title>
		<link>http://www.techspread.de/7768/webanwendung-zur-auswertung-von-gewinnspielen-in-wordpress</link>
		<comments>http://www.techspread.de/7768/webanwendung-zur-auswertung-von-gewinnspielen-in-wordpress#comments</comments>
		<pubDate>Sat, 13 Aug 2011 23:56:39 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Auswertung]]></category>
		<category><![CDATA[Gewinnspiel]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=7768</guid>
		<description><![CDATA[Irgendwann veranstaltet wohl jeder Blogger mal ein Gewinnspiel. Hierbei werden meist die Kommentare der Benutzer zur Gewinnermittlung verwendet, sodass sich bei einer Vielzahl an Kommentaren die Auswertung als recht mühsam herausstellen kann. Deshalb habe ich heute eine kleine Webanwendung erstellt, mit der man bequem solche Gewinnspiele auswerten kann. Benutzung Zwar sollte die Bedienung der Anwendung [...]]]></description>
			<content:encoded><![CDATA[<p>Irgendwann veranstaltet wohl jeder Blogger mal ein Gewinnspiel. Hierbei werden meist die Kommentare der Benutzer zur Gewinnermittlung verwendet, sodass sich bei einer Vielzahl an Kommentaren die Auswertung als recht mühsam herausstellen kann. Deshalb habe ich heute eine kleine Webanwendung erstellt, mit der man bequem solche Gewinnspiele auswerten kann.<span id="more-7768"></span></p>
<h2>Benutzung</h2>
<p>Zwar sollte die Bedienung der Anwendung intuitiv genug sein, ich erkläre dennoch einmal kurz alle Schritte. Zunächst muss man sich natürlich anmelden. Da sich die Webanwendung in die WordPress-Datenbank einklinkt, müssen hier die Benutzerdaten des WordPress-Administrators eingetragen werden:</p>
<p><a href="http://www.techspread.de/wp-content/uploads/wp-lottery-01.png" rel="lightbox[7768]"><img class="aligncenter size-full wp-image-7771" title="WordPress Lotterie - Anmeldung" src="http://www.techspread.de/wp-content/uploads/wp-lottery-01.png" alt="" width="364" height="317" /></a></p>
<p>Danach wählt man den Artikel, aus dem die Kommentare verarbeitet werden sollen. Es werden hierbei die neusten 100 Artikel chronologisch absteigend angezeigt. Ich denke, das sollte ausreichen&#8230;</p>
<p><a href="http://www.techspread.de/wp-content/uploads/wp-lottery-02.png" rel="lightbox[7768]"><img class="aligncenter size-large wp-image-7772" title="WordPress Lotterie - Artikel aussuchen" src="http://www.techspread.de/wp-content/uploads/wp-lottery-02-600x213.png" alt="" width="600" height="213" /></a></p>
<p>Auf der nächsten Seite werden dann die Kommentare des Artikels angezeigt. Pro E-Mail-Adresse werden die Kommentare gebündelt dargestellt. Über den Faktor auf der rechten Seite kann festgelegt werden, wieviele Lose für diesen Benutzer in den Topf kommen sollen. Unten kann dann schließlich ausgewählt werden, wieviele Gewinner ausgelost werden sollen:</p>
<p><a href="http://www.techspread.de/wp-content/uploads/wp-lottery-03.png" rel="lightbox[7768]"><img class="aligncenter size-large wp-image-7775" title="WordPress Lotterie - Kommentare bewerten" src="http://www.techspread.de/wp-content/uploads/wp-lottery-03-600x341.png" alt="" width="600" height="341" /></a></p>
<p>Dann werden auch schon die Gewinner aufgelistet:</p>
<p><a href="http://www.techspread.de/wp-content/uploads/wp-lottery-04.png" rel="lightbox[7768]"><img class="aligncenter size-large wp-image-7776" title="WordPress Lotterie - Gewinneranzeige" src="http://www.techspread.de/wp-content/uploads/wp-lottery-04-600x247.png" alt="" width="600" height="247" /></a></p>
<h2>Algorithmus zur Auslosung</h2>
<p>Jetzt möchten einige bestimmt wissen, wie die Gewinner ermittelt werden. Es werden zunächst für jeden Besucher so viele Lose in den Topf (Programmierer werden dies als Array kennen <img src='http://www.techspread.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) geworfen, wie für ihn angegeben wurde. Danach wird alles durchgemischt. Letztendlich ermittelt ein Zufallszahlen-Generator die Gewinner. Damit ein Besucher nicht zweimal ausgelost wird, wird immer nachgeprüft, ob dieser nicht schon einen Gewinn gezogen hat.</p>
<p>Der Algorithmus funktioniert also fast genau so, wie bei einer echten Verlosung (hier kann man allerdings mehrmals einen Gewinn ziehen <img src='http://www.techspread.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<h2>Hinweis</h2>
<p>Die Anwendung wird so ausgeliefert, <a href="http://en.wikipedia.org/wiki/As_is">wie sie ist</a>. Das heisst, dass ich trotz intensiver Prüfung die Fehlerfreiheit des Programms nicht garantieren kann. Um immer über aktuelle Neuerungen informiert zu bleiben, solltet ihr die Benachrichtigungen für neue Kommentare in diesem Artikel abonnieren. Ein kleines Dankeschön als Kommentar (damit ihr die Benachrichtigung abonnieren könnt) reicht mir schon <img src='http://www.techspread.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>Download und Installation</h2>
<p>Nach dem <a href="http://www.techspread.de/wp-content/uploads/lottery.zip">Download der Anwendung</a> muss das entsprechende Archiv einfach in das Hauptverzeichnis deiner WordPress-Installation entpackt werden. Danach kann die Anwendung über <em>http://&lt;Deine WordPress-URL&gt;/lottery</em> aufgerufen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/7768/webanwendung-zur-auswertung-von-gewinnspielen-in-wordpress/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>WordPress rasend schnell mit APC, memcached und weiteren Optimierungen</title>
		<link>http://www.techspread.de/7530/wordpress-rasend-schnell-mit-apc-memcached-und-weiteren-optimierungen</link>
		<comments>http://www.techspread.de/7530/wordpress-rasend-schnell-mit-apc-memcached-und-weiteren-optimierungen#comments</comments>
		<pubDate>Tue, 21 Jun 2011 18:58:42 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[FlexiCache]]></category>
		<category><![CDATA[Google Web Fonts]]></category>
		<category><![CDATA[GravatarCache]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Tuning]]></category>
		<category><![CDATA[VirtualHost]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=7530</guid>
		<description><![CDATA[Dieser Artikel gibt einem umfangreiche Tipps zur Optimierung der eigenen WordPress-Installation.]]></description>
			<content:encoded><![CDATA[<p>In den letzten Wochen ging es gefühlt bergab mit der Geschwindigkeit meines Blogs. Deshalb habe ich gestern mal wieder etwas Hand an mein WordPress gelegt, alles mögliche optimiert und neue Caches ausgetestet. Ich muss sagen, dass ich mit dem Ergebnis mehr als zufrieden bin.<span id="more-7530"></span></p>
<h2>Alternative PHP Cache</h2>
<p>Zunächst habe ich den <a href="http://de.wikipedia.org/wiki/Alternative_PHP_Cache">Alternative PHP Cache</a> (APC) installiert. Da PHP eine interpretierte Sprache ist, muss ein PHP-Script vor der Ausführung erst kompiliert werden. APC cached das Kompilat, sodass beim nächsten Aufruf des Scripts das Kompilieren entfällt. Unter Ubuntu installiert und aktiviert man APC ganz einfach wie folgt:</p>
<pre class="brush:shell">aptitude install php-apc
/etc/init.d/apache2 restart</pre>
<p>Nach dem Neustart des Webservers ist APC automatisch aktiviert &#8211; es ist keine weitere Konfiguration erforderlich (es sei denn, man will noch das letzte Quäntchen heraus holen).</p>
<h2>memcached</h2>
<p>Als nächstes habe ich <a href="http://memcached.org/">memcached</a> installiert. Mit memcached können Daten im Arbeitsspeicher gehalten werden. Zwar gibt es das entsprechende PHP-Modul für memcached in den Paketquellen von Ubuntu, aber aus unerklärlichen Gründen konnte das benötigte Plugin FlexiCache für WordPress nichts mit der PHP-Erweiterung aus den Paketquellen anfangen. Also habe ich das Modul wie folgt manuell installiert. Im gleichen Abwasch werden noch der memcached-Server sowie die SQLite-Unterstützung für PHP installiert (mehr dazu gleich):</p>
<pre class="brush:shell">aptitude install php-pear php5-dev memcached php5-sqlite
pear install memcache
echo "extension=memcache.so" &gt;&gt; /etc/php/apache2/php.ini
/etc/init.d/apache2 restart</pre>
<p>Nachdem alle benötigten Pakete installiert wurden, muss das Plugin <a href="http://wordpress.org/extend/plugins/flexicache/">FlexiCache</a> für WordPress installiert werden. Nach der Aktivierung des Plugins sind kleinere Einstellungen zu machen, wobei die Grundeinstellungen bereits sehr gut sind.</p>
<p>In den <em>Main Options</em> von FlexiCache aktiviert ihr zunächst einmal den Cache, stellt als <em>Storage Engine</em> memcached ein und erhöht ggf. noch die Ablaufzeit des Caches:</p>
<p><img class="aligncenter size-large wp-image-7531" title="FlexiCache Main Options" src="http://www.techspread.de/wp-content/uploads/flexicache-main-options-600x239.png" alt="" width="600" height="239" /></p>
<p>Des Weiteren habe ich den Standalone Mode von FlexiCache aktiviert. Hierbei werden Anfragen über eine entsprechende Umleitung direkt an FlexiCache gerichtet. Sollte ein gültiger Cache-Eintrag vorhanden sein, wird dieser direkt ausgeliefert, ohne das eine Zeile WordPress-Code ausgeführt wird. Sollte kein passender Cache-Eintrag vorhanden sein, übergibt FlexiCache die weitere Behandlung an WordPress und cached die Seite dann natürlich.</p>
<p>Die entsprechende Modifikation für eure .htaccess-Datei kann bequem über den Punkt Standalone Mode aktiviert werden, sofern die Datei über entsprechende Zugriffsrechte verfügt. Ansonsten werden euch die Anpassungen auch angezeigt und müssen per Hand in die .htaccess-Datei eingefügt werden.</p>
<p>Die vorhin installierte SQLite-Unterstützung für PHP wird übrigens automatisch von FlexiCache für interne Zwecke verwendet. Es erleichtert FlexiCache, veraltete Cache-Einträge zu identifizieren und diese dann zu löschen. Solltet ihr keine SQLite-Unterstützung installiert haben, wird sich dies aber laut Dokumentation des Plugins nicht negativ auf die Ladezeit auswirken.</p>
<h2>.htaccess raus, VirtualHost rein</h2>
<p>Über die vielfach verwendete .htaccess-Datei kann bequem das Verhalten des Webservers beeinflusst werden: Umleitungen einrichten, HTTP-Header versenden, Authentifizierung einrichten &#8211; alles kein Problem. Der Nachteil ist jedoch, dass die Datei bei jeder einzelnen Anfrage vom Webserver ausgewertet wird. Sollte also zum Beispiel eine Seite drei JavaScripts, zwei CSS-Dateien und fünf bilder einbinden, seit ihr im Besten fall mit 11 Anfragen dabei und somit muss die .htaccess-Datei 11x ausgewertet werden.</p>
<p>Besser ist es, die Inhalte aus der .htaccess-Datei direkt in die Konfiguration des Webservers zu übernehmen. Dort wird die Konfiguration einmal beim Start des Webservers eingelesen und muss nicht mehr erneut ausgewertet werden.</p>
<p>Die VirtualHost-Konfiguration für diese Domain habe ich dazu wie folgt angepasst:</p>
<pre class="brush:plain">&lt;VirtualHost *:80&gt;
	&lt;Directory /var/www/www.techspread.de&gt;
		// hier die Inhalte aus der .htaccess-Datei
	&lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre>
<p>Natürlich handelt es sich hierbei nicht um die komplette Konfiguration des VirtualHosts, sondern nur um die Inhalte, die nötig sind, um das Übertragen der .htaccess-Einträge in die Konfiguration zu beschreiben. Der Verzeichnispfad muss absolut angegeben werden und entspricht dem Speicherort auf dem Server.</p>
<h2>GravatarCache einrichten</h2>
<p>Die meisten Blogs verwenden Gravatare, um vor allem die Kommentare etwas persönlicher zu gestaltet. Der Nachteil besteht darin, dass die Gravatar-Server nicht unbedingt sie schnellsten sind. Deshalb habe ich den <a href="http://playground.ebiene.de/2599/wordpress-gravatar-cache/">GravatarCache von Sergej</a> eingerichtet.</p>
<h2>Google Web Fonts auf den eigenen Webserver packen</h2>
<p>Zwar war die Webseite nach diesen Anpassungen schon sehr schnell, ein Blick auf die Ladezeiten mit <a href="https://addons.mozilla.org/de/firefox/addon/firebug/">Firebug</a> zeigte jedoch, dass die meiste Ladezeit damit verbracht wird, die vom Theme verwendeten <a href="http://www.google.com/webfonts">Google Web Fonts</a> herunterzuladen. GoogleCDN hin oder her, die Ladezeiten stimmten einfach nicht. Deshalb habe ich die Fonts einfach auf meinen eigenen Server gepackt und das Stylesheet entsprechend angepasst.</p>
<p>Hierzu muss zunächst im Stylesheet der entsprechende @import für die Google Web Fonts gesucht werden. Die angegebene URL wird dann einfach im Browser geöffnet. Bei mir war diese URL eingetragen: <a href="http://fonts.googleapis.com/css?family=Droid+Sans:regular,bold|Droid+Serif:regular,italic,bold,bolditalic&amp;subset=latin">http://fonts.googleapis.com/css?family=Droid+Sans:regular,bold|Droid+Serif:regular,italic,bold,bolditalic&amp;subset=latin</a></p>
<p>Das @import habe ich dann durch die entsprechende Ausgabe ersetzt. Der Abschnitt enthält diverse URLs, über welche die Google Web Fonts referenziert werden. Einfach die URLs aufrufen, .woff-Dateien herunterladen und auf dem eigenen Server ablegen. Danach müssen die URLs noch an den eigenen Server angepasst werden und fertig.</p>
<h2>Weitere Optimierungen</h2>
<p>Neben den vorgestellten Optimierungen können noch diverse Tricks umgesetzt werden. So sollte man sich zum Beispiel einmal den <a href="http://httpd.apache.org/docs/2.2/caching.html">Apache Caching Guide</a> durchlesen. Dass die Anzahl der installierten Plugins die WordPress-Performace beeinträchtigt und die Datenbank gepflegt werden sollte, muss ich wohl nicht großartig erwähnen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/7530/wordpress-rasend-schnell-mit-apc-memcached-und-weiteren-optimierungen/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Bashscript zur Optimierung der WordPress-Datenbank</title>
		<link>http://www.techspread.de/7402/bashscript-zur-optimierung-der-wordpress-datenbank</link>
		<comments>http://www.techspread.de/7402/bashscript-zur-optimierung-der-wordpress-datenbank#comments</comments>
		<pubDate>Thu, 02 Jun 2011 21:51:47 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Bashscript]]></category>
		<category><![CDATA[Cronjob]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Optimierung]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=7402</guid>
		<description><![CDATA[Mit dem hier vorgestellten Bashscript kann man seine WordPress-Datenbank säubern und optimieren lassen.]]></description>
			<content:encoded><![CDATA[<p>Ich versuche, die Plugin-Anzahl meiner WordPress-Installationen möglichst gering zu halten. Trotzdem möchte ich auf bestimmte Funktionen nicht verzichten. Bis vor kurzem hatte ich noch <a href="http://wordpress.org/extend/plugins/wp-dbmanager/">WP-DBManager</a> und <a href="http://wordpress.org/extend/plugins/wp-optimize/">WP-Optimize</a> im Einsatz. Die beiden Plugins sind nun rausgeflogen und ich habe mir die Funktionen, die ich von den Plugins benutzt habe, in ein kompaktes Bashscript verpackt und als Cronjob auf meinem Server eingerichtet.<span id="more-7402"></span></p>
<div class="warning">Das Script sollte keinesfalls einfach übernommen, sondern an die eigenen Bedürfnisse angepasst werden. So möchte man z.B. nicht alle ungenehmigten Kommentare automatisch löschen lassen. In dem Fall einfach die entsprechenden Zeilen mit einem Rautezeichen auskommentieren oder löschen. Ich empfehle auch, die <a href="/1356/mysql-datenbanken-sichern">Datenbank vor den Optimierungen automatisch sichern</a> zu lassen &#8211; man kann nie vorsichtig genug sein.</div>
<pre class="brush:shell">#! /bin/bash

# Korrekte Parameteranzahl überprüfen
if [ $# -ne 4 ];
then
	echo "Usage: wordpress-cleanup &lt;Database&gt; &lt;Table-Prefix&gt; &lt;Username&gt; &lt;Password&gt;"
	exit 0
fi

# Variablen deklarieren
DATABASE=$1
WPPREFIX=$2
USERNAME=$3
PASSWORD=$4

# MySQL-Queries ausführen
mysql -u$USERNAME -p$PASSWORD $DATABASE &lt;&lt;EOF

	# Revisionen und automatische Speicherungen löschen
	DELETE FROM ${WPPREFIX}posts WHERE post_type=’revision’;

	# Automatisch angelegte Entwürfe löschen
	DELETE FROM ${WPPREFIX}posts WHERE post_type=’auto-draft’;

	# Als Spam markierte Kommentare löschen
	DELETE FROM ${WPPREFIX}comments WHERE comment_approved=’spam’;

	# Kommentare aus dem Papierkorb löschen
	DELETE FROM ${WPPREFIX}comments WHERE comment_approved=’trash’;

	# Nicht genehmigte Kommentare löschen
	DELETE FROM ${WPPREFIX}comments WHERE comment_approved=’0′;

EOF

# Tabellen auslesen
TABLES=`mysql -u$USERNAME -p$PASSWORD $DATABASE -se ‘SHOW TABLES’`

# Tabellen durchgehen
for TABLE in $TABLES;
do

	# Tabellen optimieren
	mysql -u$USERNAME -p$PASSWORD $DATABASE -e "OPTIMIZE TABLE $TABLE" &gt; /dev/null

	# Tabellen reparieren
	mysql -u$USERNAME -p$PASSWORD $DATABASE -e "REPAIR TABLE $TABLE" &gt; /dev/null

done</pre>
<p>Wenn ihr noch weitere Optimierungen für die WordPress-Datenbank habt, werde ich die entsprechenden Vorschläge prüfen und ggf. in das Script einpflegen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/7402/bashscript-zur-optimierung-der-wordpress-datenbank/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress nicht datenschutzkonform?</title>
		<link>http://www.techspread.de/7092/wordpress-nicht-datenschutzkonform</link>
		<comments>http://www.techspread.de/7092/wordpress-nicht-datenschutzkonform#comments</comments>
		<pubDate>Fri, 29 Apr 2011 15:13:32 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[datenschutzkonform]]></category>
		<category><![CDATA[Kommentare]]></category>
		<category><![CDATA[Webserver]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=7092</guid>
		<description><![CDATA[Ist WordPress datenschutzkonform? Diese Frage möchte ich zusammen mit euch diskutieren.]]></description>
			<content:encoded><![CDATA[<p>Das ganze Thema mit Akismet und Google Analytics finde ich schon lange ausgelutscht. Wer datenschutzkonform seine Kommentare auf Spam hin überprüfen lassen will, benutzt ganz einfach <a title="AntiSpamBee" href="http://antispambee.de/">AntiSpamBee</a> von Sergej. Als datenschutzkonforme Tracking-Software kann <a title="Piwik" href="http://piwik.org/">Piwik</a> zusammen mit dem AnonymizeIP-Plugin eingesetzt werden. Nun sind mir aber letztens beim Durchstöbern der WordPress-Datenbank zwei ganz andere Probleme aufgefallen.<span id="more-7092"></span></p>
<p>So wird bei den meisten Blogs eine Angabe der E-Mail-Adresse zum Kommentieren verlangt. Zusätzlich protokolliert WordPress immer die IP-Adresse des Kommentators. Die fragwürdigen Spalten <em>comment_author_email</em> und <em>comment_author_ip</em> finden sich in der Tabelle <em>wp_comments</em>.</p>
<p>Rechtlich gesehen müsste man die Kommentatoren vor dem Abgeben eines Kommentars darüber aufklären, dass die E-Mail- und/oder IP-Adresse im Klartext und dementsprechend nicht anonymisiert gespeichert werden. Das müsste wie z.B. bei Onlineshops über eine Datenschutzerklärung sowie eine Checkbox, die standardmäßig deaktiviert und dementsprechend von dem Besucher anzukreuzen ist, erfolgen.</p>
<p>Die IP-Adressen zu anonymisieren sollte kein Problem darstellen, die braucht WordPress meines Erachtens nach nicht. Blöderweise kann man bei WordPress nur die Angabe eines Benutzernamens zusammen mit einer Angabe der E-Mail-Adresse erzwingen. Der Punkt findet sich in der <em>WordPress-Administration</em> unter <em>Einstellungen</em> » <em>Diskussion</em> » <em>Benutzer müssen zum Kommentieren Name und E-Mail-Adresse hinterlassen</em>.</p>
<p>Hinzu kommt, dass Plugins zur automatischen Benachrichtigung bei neuen Kommentaren wie z.B. <a href="http://wordpress.org/extend/plugins/subscribe-to-double-opt-in-comments/">Subscribe to Double-Opt-In Comments</a> ebenfalls sehr beliebt sind. Auch hier wäre eine Aufklärung des Benutzers aus meiner Sicht aus Datenschutzgründen erforderlich.</p>
<p>Und damit nicht genug: zwar machen sich viele Leute Gedanken über Google Analytics und Akismet, setzen dementsprechend Tools ein, die datenschutzkonform sind, aber bedenken nichtmal die Grundlage einer Webseite: den Webserver. Dieser protokolliert auch in den allermeisten Fällen personenbezogene Daten (die IP-Adresse), sofern man dies nicht deaktiviert.</p>
<p>Doch was tun? E-Mail- und IP-Adressen kann man anonymisieren oder löschen. Ebenso kann man das Protokoll des Webservers deaktivieren (sofern man den Server selber administriert) und bereits angelegte Log-Dateien löschen. Bei automatischen Benachrichtigungen zu neuen Kommentaren müsste man den Besucher meines Wissens nach darüber aufklären, dass seine E-Mail-Adresse gespeichert wird. Oder kann man hier grundsätzlich davon ausgehen, dass der Besucher aufgrund des Aktivierungstextes davon Kenntnis haben sollte, dass die E-Mail-Adresse hinterlegt wird?</p>
<p>Was meint ihr zu der ganzen Problematik?</p>
<p>Update:</p>
<ul>
<li><a href="/7104/apache-datenschutzkonform-logging-deaktivieren">Apache datenschutzkonform: Logging deaktivieren</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/7092/wordpress-nicht-datenschutzkonform/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Tweet This ohne WordPress-Plugin</title>
		<link>http://www.techspread.de/7052/tweet-this-ohne-wordpress-plugin</link>
		<comments>http://www.techspread.de/7052/tweet-this-ohne-wordpress-plugin#comments</comments>
		<pubDate>Sun, 24 Apr 2011 18:53:00 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Tweet This]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=7052</guid>
		<description><![CDATA[Mit WordPress-Bordmitteln kann ein äußerst einfacher und effektiver Tweet This-Link erzeugt werden.]]></description>
			<content:encoded><![CDATA[<p>Ich bin gerade dabei, ein neues Design zu basteln und möchte endlich mal eine ordentliche Twitter-Anbindung integrieren. Dabei soll es möglich sein, einen Artikel direkt per Link per Twitter zu empfehlen. Bei Frank habe ich dazu <a href="http://bueltge.de/tweet-this-mit-wordpress/875/">ein gutes Tutorial</a> gefunden, jedoch noch an meine Anforderungen angepasst. So habe ich den URL-Shortener rausgeworfen und verwende den WordPress-eigenen Shortlink. Zudem wird mein Twitter-Nickname angehängt.<span id="more-7052"></span></p>
<p>Der Code dafür steht in meiner functions.php und sieht wie folgt aus:</p>
<pre>// Funktion zum Erzeugen des Tweet This-Links
function tweetlink($title, $url) {
   $href = str_replace(' ', '%20', "http://twitter.com/home?status=$title $url (via @P4G0)");
   echo '&lt;a href="'.$href.'"&gt;Tweet this&lt;/a&gt;';
}</pre>
<p>Aufgerufen wird die Funktion in meiner Loop wie folgt:</p>
<pre>&lt;?php tweetlink(get_the_title(), wp_get_shortlink()); ?&gt;</pre>
<p>Wie man sieht, eine äußerst einfache und effektive Lösung, um einen Tweet This-Link zu erstellen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/7052/tweet-this-ohne-wordpress-plugin/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress: Neue Webseite der Tennissparte Dänischenhagen online</title>
		<link>http://www.techspread.de/7015/wordpress-neue-webseite-der-tennissparte-daenischenhagen-online</link>
		<comments>http://www.techspread.de/7015/wordpress-neue-webseite-der-tennissparte-daenischenhagen-online#comments</comments>
		<pubDate>Mon, 18 Apr 2011 16:22:05 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Dänischenhagen]]></category>
		<category><![CDATA[Tennissparte]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=7015</guid>
		<description><![CDATA[Die Webseite der Tennissparte Dänischenhagen wurde mit WordPress umgesetzt.]]></description>
			<content:encoded><![CDATA[<p>Und wieder habe ich eine klassische Webseite auf WordPress-Basis umgesetzt. Nachdem vor einiger Zeit die Webseite der <a href="/6264/webseite-der-fahrschule-pilates-online">Fahrschule Pilates</a> online ging, folgt nun <a href="http://www.tennis-daenischenhagen.de/">die Webseite meiner Tennissparte</a>. Die vorherige Webseite habe ich vor zig Jahren mal halbwegs statisch per Hand geschrieben. Dementsprechend nervig waren kleinere Updates, die immer im Quelltext vorgenommen werden mussten. Zudem hat die Seite ein Facelift nötig gehabt. Die Wahl fiel natürlich wieder auf WordPress als CMS-System.<span id="more-7015"></span></p>
<p><img class="aligncenter size-full wp-image-7017" title="Webseite der Tennissparte Dänischenhagen" src="http://www.techspread.de/wp-content/uploads/tennissparte-daenischenhagen.jpg" alt="" width="600" height="376" /></p>
<p>Die Navigation wird über ein individuelles Menü geregelt, wobei der Dropdown-Effekt auf reinem CSS basiert. Ansonsten wird die Webseite noch angetrieben von den folgenden Plugins:</p>
<table border="0">
<thead>
<tr>
<td>Plugin</td>
<td>Beschreibung</td>
</tr>
</thead>
<tbody>
<tr>
<td>All in One SEO Pack</td>
<td>Braucht glaube ich keine große Erklärung. Bekanntes SEO Paket für WordPress.</td>
</tr>
<tr>
<td>Email Encoder Bundle</td>
<td>Dieses Plugin kann E-Mail-Adressen auf verschiedene Arten (ASCII-Codierung oder per JavaScript) verschlüsseln. Ich brauche von dem Plugin aber eigentlich nur die automatische Verlinkung von Klartext-E-Mail-Adressen.</td>
</tr>
<tr>
<td>Google XML Sitemaps</td>
<td>Erzeugen der XML Sitemap für Google und diverse andere Suchmaschinen.</td>
</tr>
<tr>
<td>pageMash</td>
<td>Komfortables herumschieben der einzelnen Seiten im Seitenbaum.</td>
</tr>
<tr>
<td>TinyMCE Advanced</td>
<td>Meiner Meinung nach ein absolutes Muss-Plugin. Erweitert den WordPress-Editor um eine Vielzahl an Funktionen.</td>
</tr>
<tr>
<td>Update Notifier</td>
<td>Dieses Plugin schickt mir eine E-Mail, sobald WordPress- oder Plugin-Updates verfügbar sind.</td>
</tr>
<tr>
<td>WP-CleanUmlauts2</td>
<td>Korrekte Umformung deutscher Sonderzeichen für sprechende URLs</td>
</tr>
<tr>
<td>WP-Piwik</td>
<td>Einbindung des Tracking-Codes von Piwik.</td>
</tr>
</tbody>
</table>
<p>Die Seite ist in dem jetzigen Zustand noch nicht ganz fertig. Die Startseite bekommt noch eine GoogleMap spendiert, wobei auch gleich der Fotostreifen der alten Webseite weichen wird. Zudem soll die Startseite natürlich ein wenig informativer werden, nur der passende Text ist uns noch nicht eingefallen <img src='http://www.techspread.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/7015/wordpress-neue-webseite-der-tennissparte-daenischenhagen-online/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Mein Eclipse-Setup</title>
		<link>http://www.techspread.de/6816/mein-eclipse-setup</link>
		<comments>http://www.techspread.de/6816/mein-eclipse-setup#comments</comments>
		<pubDate>Sun, 13 Mar 2011 15:22:55 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=6816</guid>
		<description><![CDATA[Heute stelle ich euch meine Entwicklungsumgebung Eclipse samt meiner installierten Plugins vor.]]></description>
			<content:encoded><![CDATA[<p>Meine Güte ist der letzte Artikel schon wieder her. Aber nun sind die Klausuren alle vorbei und ich habe wieder mehr Zeit zum Schreiben. Heute stelle ich euch mal mein Eclipse-Setup vor, das ich sowohl für die Java-Programmierung als auch für&#8217;s Webdesign verwende.<span id="more-6816"></span></p>
<p>Zunächst einmal habe ich natürlich die neuste <a title="Eclipse Download" href="http://www.eclipse.org/downloads/">Eclipse</a>-Version (derzeit Helios) in der Variante für Java Entwickler installiert.</p>
<p>Dazu gesellen sich eine Reihe an Plugins:</p>
<table border="0">
<thead>
<tr>
<td>Name</td>
<td>Beschreibung</td>
</tr>
</thead>
<tbody>
<tr>
<td><a title="Aptana" href="http://aptana.com/products/studio2/download">Aptana</a></td>
<td>Umfangreiches Plugin für&#8217;s Webdesign</td>
</tr>
<tr>
<td><a title="Eclipse PDT" href="http://wiki.eclipse.org/PDT/Installation">Eclipse PDT</a></td>
<td>Entwicklungswerkzeuge für PHP</td>
</tr>
<tr>
<td><a title="Eclipse Checkstyle-Plugin" href="http://eclipse-cs.sourceforge.net/">eclipse-cs</a></td>
<td>Plugin zur Überprüfung der Einhaltung von Programmierrichtlinien</td>
</tr>
<tr>
<td><a title="Eclipse Data Tools Platform" href="http://www.eclipse.org/datatools/">Data Tools Platform</a></td>
<td>Verschiedenste Datenbanken aus Eclipse heraus modellieren</td>
</tr>
<tr>
<td><a title="FindBugs" href="http://findbugs.sourceforge.net/downloads.html">FindBugs</a></td>
<td>Statische Quellcodeanalyse</td>
</tr>
<tr>
<td><a title="Hibernate Tools" href="http://www.hibernate.org/subprojects/tools.html">Hibernate Tools</a></td>
<td>Hibernate Unterstützung für Eclipse</td>
</tr>
<tr>
<td><a title="M2Eclipse" href="http://m2eclipse.sonatype.org/">M2Eclipse</a></td>
<td>Maven-Integration für Eclipse</td>
</tr>
<tr>
<td><a title="Subclipse" href="http://subclipse.tigris.org/">Subclipse</a></td>
<td>Subversion-Integration</td>
</tr>
<tr>
<td><a title="Window Builder Pro" href="http://code.google.com/intl/de-DE/javadevtools/download-wbpro.html">Window Builder Pro</a></td>
<td>GUI-Builder für Java-Programme</td>
</tr>
<tr>
<td><a title="Zen Coding" href="https://github.com/sergeche/eclipse-zencoding">Zen Coding</a></td>
<td>Plugin, mit dem man sehr effizient und schnell Webseiten basteln kann</td>
</tr>
</tbody>
</table>
<p>Und da ich schon weiß, dass sich gleich wieder die Netbeans-Benutzer zu Wort melden werden: man teilt Eclipse einfach ein wenig mehr Arbeitsspeicher zu und optimiert an ein paar Stellen und alles läuft rund und flüssig <img src='http://www.techspread.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/6816/mein-eclipse-setup/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Frisch eingetroffen: WordPress &#8211; Das Praxisbuch</title>
		<link>http://www.techspread.de/6459/frisch-eingetroffen-wordpress-das-praxisbuch</link>
		<comments>http://www.techspread.de/6459/frisch-eingetroffen-wordpress-das-praxisbuch#comments</comments>
		<pubDate>Tue, 01 Feb 2011 10:14:19 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Perun]]></category>
		<category><![CDATA[Praxisbuch]]></category>
		<category><![CDATA[Vladimir]]></category>

		<guid isPermaLink="false">http://www.techspread.de/?p=6459</guid>
		<description><![CDATA[Ich habe bei Vladimir aka Perun eine Ausgabe von WordPress - Das Praxisbuch (4. Auflage) gewonnen.]]></description>
			<content:encoded><![CDATA[<p>Ich habe bisher selten etwas gewonnen. Ich kann mich ehrlich gesagt nur an zwei Gewinne erinnern: einmal einen USB-Stick <a href="http://stadt-bremerhaven.de/usb-sticks-zu-verschenken">bei Carsten</a> und nun <a href="http://www.perun.net/2011/01/10/siebenjaehriger-verlost-wordpress-buecher/">bei Vladimir</a> eine Ausgabe der 4. Auflage von <a href="http://www.wordpress-buch.de/das-praxisbuch/">WordPress &#8211; Das Praxisbuch,</a> das eben von meinem guten DHL-Boten geliefert wurde. Ich freue mich riesig über den Gewinn, da ich WordPress sehr gerne für Webseiten einsetze und Vladimir in dem Buch bestimmt gute Tipps liefert, die mir noch nicht bekannt sind.<span id="more-6459"></span></p>
<p>Ich würde ja sehr gerne sofort das Buch durchlesen, morgen geht es aber in die mündliche Prüfung meiner GPM-Zertifizierung, weshalb ich den Fokus nun erst einmal auf das Lernen richten muss. So sieht das gute Stück auf jeden Fall aus:</p>
<p><img class="aligncenter size-full wp-image-6460" title="WordPress - Das Praxisbuch" src="http://www.techspread.de/wp-content/uploads/wordpress-das-praxisbuch.jpg" alt="" width="500" height="500" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.techspread.de/6459/frisch-eingetroffen-wordpress-das-praxisbuch/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

