<?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>Open Sourced Brain. &#187; WordPress</title>
	<atom:link href="http://opensourcedbrain.de/thema/entwicklung/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://opensourcedbrain.de</link>
	<description>Second Hand Gedankengut</description>
	<lastBuildDate>Tue, 29 Nov 2011 08:07:43 +0000</lastBuildDate>
	<language>de-de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WordPress 2.0.5: Ronan</title>
		<link>http://opensourcedbrain.de/2006/10/28/wordpress-205-ronan/</link>
		<comments>http://opensourcedbrain.de/2006/10/28/wordpress-205-ronan/#comments</comments>
		<pubDate>Sat, 28 Oct 2006 00:05:31 +0000</pubDate>
		<dc:creator>Erik Range</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://erik.range-it.de/2006/10/28/wordpress-205-ronan/</guid>
		<description><![CDATA[Die neueste Version von WordPress ist vor wenigen Minuten erschienen. Wichtige Bugfixes und Änderungen stehen diesmal auf dem Programm. Die Download-Seite ist in Matts Eintrag bislang falsch verlinkt, darum hier die richtige: WordPress 2.0.5 Download. Der Name Ronan kommt übrigens von Ryan Borens frisch geborenem Sohn, der hoffentlich keine Bugfixes braucht. Herzlichen Glückwunsch auf jeden ]]></description>
			<content:encoded><![CDATA[<p>Die neueste Version von <a href="http://wordpress.org" title="WordPress" rel="tag"><strong>WordPress</strong></a> ist vor wenigen Minuten erschienen. <a href="http://markjaquith.wordpress.com/2006/10/17/changes-in-wordpress-205/" title="WordPress 2.0.5: Bugfixes und Änderungen">Wichtige Bugfixes und Änderungen</a> stehen diesmal auf dem Programm. Die Download-Seite ist in <a href="http://wordpress.org/development/2006/10/205-ronan/" title="Matts Eintrag bei WordPress.org" rel="tag">Matts Eintrag</a> bislang falsch verlinkt, darum hier die richtige: <a href="http://wordpress.org/download/" title="WordPress 2.0.5: Download" rel="tag">WordPress 2.0.5 Download</a>. Der Name <a href="http://boren.nu/archives/2006/10/11/im-a-daddy/" title="Ronan" rel="tag">Ronan</a> kommt übrigens von <a href="http://boren.nu/" title="Ryan Boren: Die Homepage" rel="tag">Ryan Boren</a>s frisch geborenem Sohn, der hoffentlich keine Bugfixes braucht. Herzlichen Glückwunsch auf jeden Fall auch dazu.</p>
]]></content:encoded>
			<wfw:commentRss>http://opensourcedbrain.de/2006/10/28/wordpress-205-ronan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin: SyntaxHighlighter</title>
		<link>http://opensourcedbrain.de/2006/09/30/wordpress-plugin-syntaxhighlighter/</link>
		<comments>http://opensourcedbrain.de/2006/09/30/wordpress-plugin-syntaxhighlighter/#comments</comments>
		<pubDate>Sat, 30 Sep 2006 06:28:24 +0000</pubDate>
		<dc:creator>Erik Range</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://erik.range-it.de/2006/09/30/wordpress-plugin-syntaxhighlighter/</guid>
		<description><![CDATA[Auf der Suche nach einem vernünftigen Plugin, um eigene Code-Snippets möglichst einfach und doch möglichst elegant in WordPress online stellen zu können, bin ich bislang sehr erfolgreich gescheitert. Der beste Ansatz schien eine Integration von dp.SyntaxHighlighter zu sein, welches jedoch bislang allen Blog-Betreibern unter WordPress Probleme zu bereiten schien, da die Software sehr eigen ist, ]]></description>
			<content:encoded><![CDATA[<p>Auf der Suche nach einem vernünftigen Plugin, um eigene Code-Snippets möglichst einfach und doch möglichst elegant in WordPress online stellen zu können, bin ich bislang sehr erfolgreich gescheitert. Der beste Ansatz schien eine Integration von <a href="http://www.dreamprojections.com/syntaxhighlighter/" title="SyntaxHighlighter" rel="tag">dp.SyntaxHighlighter</a> zu sein, welches jedoch bislang allen Blog-Betreibern unter WordPress Probleme zu bereiten schien, da die Software sehr eigen ist, wenn es um das Formatieren von Postings geht. Eine Integration schien hier bislang unmöglich.</p>
<p>Kurzum: <strong>SyntaxHighlighter</strong> integriert nun erfolgreich und stark vereinfacht die hervorragenden Funktionalitäten des dp.SyntaxHighlighter in WordPress und umgeht dabei automatisch dessen verworrene Formatierungs-Routinen. Postings werden nach wie vor wie gewohnt dargestellt, lediglich Code Snippets sind von der automatischen Formatierung ausgeschlossen und werden nun auch korrekt ausgegeben.</p>
<p>Zusätzlich dazu sorgt ein Administrations-Menü in den WordPress-Optionen für eine einfache Konfiguration. Hier kann man sich nebst einigen Darstellungs-Möglichkeiten noch zusätzlich auswählen, welche Sprachen unterstützt werden sollen. Nur diese werden auch mitgeladen, um das Skript möglichst effektiv und schlank zu halten.</p>
<p>Anleitung, Beispiele sowie das Plugin selbst befinden sich auf der <a href="http://erik.range-it.de/wordpress/plugins/syntaxhighlighter/" title="WordPress Plugin: SyntaxHighlighter" rel="tag"><strong>SyntaxHighlighter</strong></a>-Seite. Fragen, Bugs, Anmerkungen und Ideen bitte wie immer dort in die Kommentare.</p>
<p><a class="more" href="http://erik.range-it.de/wordpress/plugins/syntaxhighlighter/"><span>Zur SyntaxHighlighter-Seite&#8230;</span><span class=cb>&nbsp;</span></a>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://opensourcedbrain.de/2006/09/30/wordpress-plugin-syntaxhighlighter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-(Sub)Domain-WordPress</title>
		<link>http://opensourcedbrain.de/2006/09/25/multi-subdomain-wordpress/</link>
		<comments>http://opensourcedbrain.de/2006/09/25/multi-subdomain-wordpress/#comments</comments>
		<pubDate>Mon, 25 Sep 2006 16:34:07 +0000</pubDate>
		<dc:creator>Erik Range</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://erik.range-it.de/2006/09/25/multi-subdomain-wordpress/</guid>
		<description><![CDATA[Manchmal wäre es doch recht sinnvoll und praktisch, wenn man mit einer WordPress-Instanz direkt mehrere Domains, respektive Subdomains bedienen könnte. Sinnvoll zum Beispiel dann, wenn man pro Subdomain eine andere Sprache anbieten möchte (de.domain.tld, en.domain.tld, fr.domain.tld). Üblicherweise wird hier zu mehreren Instanzen gegriffen, die wiederum jede für sich gepflegt werden möchte. Bei einem Dutzend und ]]></description>
			<content:encoded><![CDATA[<p>Manchmal wäre es doch recht sinnvoll und praktisch, wenn man mit einer WordPress-Instanz direkt mehrere Domains, respektive Subdomains bedienen könnte. Sinnvoll zum Beispiel dann, wenn man pro Subdomain eine andere Sprache anbieten möchte (de.domain.tld, en.domain.tld, fr.domain.tld). Üblicherweise wird hier zu mehreren Instanzen gegriffen, die wiederum jede für sich gepflegt werden möchte. Bei einem Dutzend und mehr (Sub)Domains macht die Sache dann auch so langsam keinen Spaß mehr und wird mitunter zum echten Zeitfresser, möchte man auch stets bei jeder Instanz die aktuellsten Versionen der Plugins installiert wissen, et cetera.</p>
<p>Um das Ganze nun elegant zu umgehen, eine Menge Zeit und Arbeit zu sparen und dabei trotzdem noch pro Blog eigene Konfigurationen, Templates und Unique Content anbieten zu können, hat sich in der Praxis nun das folgende &#8211; sogar recht einfache &#8211; Workaround bewährt.<br />
<span id="more-194"></span><br />
Dazu öffnen wir die <code><b>wp-config.php</b></code>, welche sich im Hauptverzeichnis von WordPress befindet. Dort suchen wir jetzt jene Zeile, in der <code>$table_prefix  = 'wp_';</code> zu lesen ist. Dahinter steht meistens noch eine mit zwei Schrägstrichen auskommentierte Anmerkung, welche je nach Verison variiert, aber wichtig ist nur, dass es sich um die Zeile handelt, in welcher der Table-Prefix festgelegt wird.</p>
<p>Die ganze Zeile wird nun ersetzt durch eine von drei möglichen Varianten:</p>
<p><b>Variante 1: eine Domain, multiple Subdomains</b><br />
[source:php]<br />
$arrPrefix = explode( &#8220;.&#8221;, $_SERVER["HTTP_HOST"] );<br />
$table_prefix = $arrPrefix[0].&#8217;_';<br />
[/source]</p>
<p><b>Variante 2: Multiple Domains (pro Domain ein Blog)</b><br />
[source:php]<br />
$arrPrefix = explode( &#8220;.&#8221;, $_SERVER["HTTP_HOST"] );<br />
$table_prefix = $arrPrefix[( count( $arrPrefix ) - 2 )].&#8217;_';<br />
[/source]</p>
<p><b>Variante 3: Multiple Domains mit jeweils multiplen Subdomains</b><br />
[source:php]<br />
$arrPrefix = explode( &#8220;.&#8221;, $_SERVER["HTTP_HOST"] );<br />
$table_prefix = implode( &#8220;_&#8221;, $arrPrefix ).&#8217;_';<br />
[/source]</p>
<p><b>Variante 4: Multiple Domains, Subdomains, gleiche Domainnamen mit verschiedenen .tlds inkl. Fix für Bindestriche</b><br />
[source:php]<br />
$table_prefix = str_replace( array( &#8220;.&#8221;, &#8220;-&#8221; ), &#8220;_&#8221;, $_SERVER["HTTP_HOST"] ).&#8221;_&#8221;;<br />
[/source]</p>
<p>Da hier bislang nur Variante 1 zum Einsatz kam, musste ich mir die beiden anderen quasi aus dem Ärmel schütteln, aber das Prinzip bleibt auch dort dasselbe. Der Prefix für die Tabellen, welche WordPress in der konfigurierten Datenbank nutzen soll, wird je nach (Sub)Domain dynamisch gesetzt. Sehr einfach, aber sehr effektiv.</p>
<p>Das Ganze lässt sich per SubDomain und einer einfachen switch/case-Routine auch noch erweitern, um &#8211; wie Eingangs bereits erwähnt &#8211; für verschiedene SubDomains zum Beispiel auch die passende Sprache auszuwählen. Da jedes Blog zwar nun auf der gleichen Instanz aufsetzt, jedoch andere Tabellen nutzt, muss auch jedes Blog zuerst noch regulär installiert und konfiguriert &#8211; also komplett neu aufgesetzt &#8211; werden. Dazu reicht es, alle betroffenen Domains einmal kurz anzusurfen und den gewohnten Installations-Prozess zu durchlaufen. Alle Blogs teilen sich natürlich sämtliche Plugins, Themes und folgende Updates, Erweiterungen und Änderungen.</p>
<p>Sehr praktisch übrigens auch, möchte man einen Blog-Hosting-Service für WordPress anbieten. Durch weitere, einfache Konfigurationsänderungen lässt sich auf diese Weise sogar die DB-Last verteilen, indem man hier mehrere (Mirror-)Server angibt. Da die Änderungen sich nur auf die <code>wp-config.php</code> beziehen, lässt sich WordPress auch weiterhin noch problemlos updaten.</p>
<p><span class="uberschrift">Nachtrag vom 28.09.2006:</span><br />
Nach einem sehr überraschenden und nicht minder erfreulichen Anruf von <a href="http://www.basicthinking.de" title="Basic Thinking">Robert Basic</a> noch eben eine <del>kurze</del> viel zu lang geratene Randnotiz hinterher:</p>
<p>Es ist natürlich wichtig, dass sämtliche Domains, die auf der WordPress-Instanz aufsetzen sollen, in ein und dasselbe Verzeichnis auf dem Server zeigen. Liegen die WordPress-Skripte also in <i>/home/htdocs/blog</i> auf dem Server, so müssen auch entsprechend die Domains dorthin gelenkt werden. Beim <a href="http://www.apache.org/" title="Gehe zur Apache Foundation">Apache</a> sähe das Ganze z.B. in der Konfigurationsdatei so aus:</p>
<blockquote><p>ServerName domain.tld<br />
ServerAlias *.domain.tld<br />
DocumentRoot /home/htdocs/blog</p></blockquote>
<p>In diesem Falle zeigen sämtliche Subdomains von domain.tld in ein einziges Verzeichnis mit genau einer WordPress-Instanz, die sich aber wiederum liebevoll per oben genannter Variante 1 um jegliche Subdomains kümmert, die hier so anfallen. Surft man nun also <i>tolle.domain.tld</i> an, so nutzt WordPress nach erfolgreicher Modifikation sämtliche Tabellen mit &#8220;tolle_&#8221; als Prefix und legt somit augenscheinlich ein komplett neues Blog an, obgleich es auf der einen Instanz aufsetzt, welche auch <i>www.domain.tld</i> und <i>schnieke.domain.tld</i> nutzen. Plugins und Templates wiederum teilen sich alle Blogs und können je nach Subdomain einzeln konfiguriert werden, da diese Daten wiederum in der jeweiligen DB-Tabelle gespeichert werden. Jedes Blog fungiert also autonom, nutzt aber den gleichen WordPress-Kern.</p>
<p>Viel Spaß damit.</p>
]]></content:encoded>
			<wfw:commentRss>http://opensourcedbrain.de/2006/09/25/multi-subdomain-wordpress/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin: getBrowserLanguage</title>
		<link>http://opensourcedbrain.de/2006/07/21/wordpress-plugin-getbrowserlanguage/</link>
		<comments>http://opensourcedbrain.de/2006/07/21/wordpress-plugin-getbrowserlanguage/#comments</comments>
		<pubDate>Fri, 21 Jul 2006 00:47:27 +0000</pubDate>
		<dc:creator>Erik Range</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://erik.range-it.de/2006/07/21/wordpress-plugin-getbrowserlanguage/</guid>
		<description><![CDATA[Das inzwischen dritte WordPress-Plugin hat soeben das Licht der Welt erblickt. getBrowserLanguage ermöglicht es dem Blogbetreibenden, die eingestellte Browsersprache(n) seiner User zu ermitteln. Dies ist vor allem sinnvoll für Blogger, welche wahlweise auf internationaler Ebene agieren wollen, oder auch zwecks eventueller Vermarktungen. Auf diese Weise können z.B. auch auf User-Sprache zugeschnittene Werbeelemente postiert werden, so ]]></description>
			<content:encoded><![CDATA[<p>Das inzwischen dritte <a href="http://www.wordpress.de" rel="tag">WordPress</a>-<a href="http://erik.range-it.de/wordpress/plugins/" rel="tag">Plugin</a> hat soeben das Licht der Welt erblickt. <strong>getBrowserLanguage</strong> ermöglicht es dem Blogbetreibenden, die eingestellte Browsersprache(n) seiner User zu ermitteln. Dies ist vor allem sinnvoll für Blogger, welche wahlweise auf internationaler Ebene agieren wollen, oder auch zwecks eventueller Vermarktungen. Auf diese Weise können z.B. auch auf User-Sprache zugeschnittene Werbeelemente postiert werden, so man denn nicht mit Google AdWords wirbt.</p>
<p>Ebenfalls möglich ist es, wahlweise Sprachdateien zu laden, auf eine anderssprachige Blog-Instanz weiterzuleiten und dergleichen mehr. Für ein reguläres Durchschnittsblog &#8211; so wie auch dieses hier &#8211; nicht unbedingt notwendig, für Business Blogs hingegen eine sehr praktische Erweiterung.</p>
<p>Anleitung, Beispiele sowie das Plugin selbst befinden sich auf der <a href="http://erik.range-it.de/wordpress/plugins/getbrowserlanguage/" rel="tag">getBrowserLanguage</a>-Seite. Fragen, Bugs, Anmerkungen und Ideen bitte wie immer dort in die Kommentare.</p>
<p><a class="more" href="http://erik.range-it.de/wordpress/plugins/getbrowserlanguage/"><span>Zur getBrowserLanguage-Seite&#8230;</span><span class=cb>&nbsp;</span></a>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://opensourcedbrain.de/2006/07/21/wordpress-plugin-getbrowserlanguage/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin: is_child</title>
		<link>http://opensourcedbrain.de/2006/06/22/wordpress-plugin-is_child/</link>
		<comments>http://opensourcedbrain.de/2006/06/22/wordpress-plugin-is_child/#comments</comments>
		<pubDate>Thu, 22 Jun 2006 17:31:02 +0000</pubDate>
		<dc:creator>Erik Range</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://erik.range-it.de/2006/06/22/wordpress-plugin-is_child/</guid>
		<description><![CDATA[Da ich inzwischen bereits für mehrere Kundenprojekte auch WordPress-Instanzen pflegen sowie modifizieren muss, wurde mir inzwischen &#8211; wie auch einigen anderen Usern &#8211; das leidige Fehlen einer is_child-Funktion bewusst, deretwegen man ständig programmiertechnische Umwege gehen musste. Jene Umwege waren dann auch nicht wirklich befriedigend und vor allem eines: nämlich zeitraubend. Auch eine intensive Suche brachte ]]></description>
			<content:encoded><![CDATA[<p>Da ich inzwischen bereits für mehrere Kundenprojekte auch <a href="http://www.wordpress.de" rel="tag">WordPress</a>-Instanzen pflegen sowie modifizieren muss, wurde mir inzwischen &#8211; wie auch einigen anderen Usern &#8211; das leidige Fehlen einer <strong>is_child</strong>-Funktion bewusst, deretwegen man ständig programmiertechnische Umwege gehen musste. Jene Umwege waren dann auch nicht wirklich befriedigend und vor allem eines: nämlich zeitraubend. Auch eine intensive Suche brachte nur das Ergebnis, auf andere Suchende zu treffen. Also blieb nur die eine Lösung: selber schreiben. Und zwar direkt als <a href="http://wp-plugins.net/" rel="tag">Plugin</a>.</p>
<p>Das Ergebnis einer Nachtschicht liegt nun seit heute Morgen vor und ist bereits erfolgreich produktiv im Einsatz: <strong>is_child</strong> in Version <del>1.1</del> 1.1.1</p>
<p>Die Funktion kann nach Aktivierung des Plugins ganz bequem in sämtlichen Templates genutzt werden. Unterstützt werden Categories, Postings und Pages. Der Parent kann wahlweise mit seiner ID, dem Titel oder dem Slug (&#8220;Titelform&#8221;) angegeben werden. Sämtliche Suchen erfolgen rekursiv durch sämtliche Elterngenerationen oder wahlweise nur mit den direkten Parents. Bei Postings werden sämtliche Kategorien, in denen das Posting eingetragen wurde, durchforstet.</p>
<p>Als Beispiel:</p>
<blockquote><p>
Man befindet sich derzeit hier:<br />
Reviews -> Music -> CDs -> Artists -> JAMMIN*INC -> Mit Anlauf</p>
<p>Nun möchte man zum Beispiel Amazon Ads für die gesamte Musik-Kategorie &#8211; inklusive aller Unter-Kategorien und Postings &#8211; schalten. Einfacher geht&#8217;s nicht mehr:<br />
<code>if( is_child( "Music" ) ) include( "amazon-ads.php" );</code></p>
<p>Das war&#8217;s. Kein lästiges <code>is_page()</code>- oder <code>is_site()</code>-fischen mehr. Kein Hakeln durch letztlich nicht vorhandene Parent-Funktionen der Categories mehr.
</p></blockquote>
<p>Mehr Beispiele sowie Anleitung und Plugin selbst finden sich auf der <a href="http://erik.range-it.de/wordpress/plugins/is_child/" rel="tag"><strong>is_child</strong></a>-Seite. Fragen, Bugs, Anmerkungen und Ideen bitte dort in die Kommentare.</p>
<p><a class="more" href="http://erik.range-it.de/wordpress/plugins/is_child/"><span>Zur is_child-Seite&#8230;</span><span class=cb>&nbsp;</span></a>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://opensourcedbrain.de/2006/06/22/wordpress-plugin-is_child/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

