<?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>Emanuel Kluge &#187; PHP</title>
	<atom:link href="http://www.emanuel-kluge.de/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emanuel-kluge.de</link>
	<description>Zeitgenössisches Web-Design aus Hannover</description>
	<lastBuildDate>Wed, 18 Jan 2012 07:06:24 +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>Studie &#8220;Backboned&#8221;: AJAX-powered WordPress-Theme mit Backbone.js</title>
		<link>http://www.emanuel-kluge.de/html-css/ajax-wordpress-theme-backbone-js/</link>
		<comments>http://www.emanuel-kluge.de/html-css/ajax-wordpress-theme-backbone-js/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 10:16:32 +0000</pubDate>
		<dc:creator>Emanuel</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Backbone.js]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://www.emanuel-kluge.de/?p=1317</guid>
		<description><![CDATA[Demo &#124; Download Um mir gelegentlich etwas Zerstreuung vom Lernen zu geben, habe ich einen lange gehegten Plan in die Tat umgesetzt: Ein AJAX-betriebenes WordPress-Theme mit Backbone.js zu bauen. Und zwar keine auf &#8220;Graceful Degradation&#8221; setzende Kompromisslösung. Alle Inhalte werden asynchron geladen und sind per Hashbang URIs ansteuerbar. Ein Blick in den Quellcode offenbart, was [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.emanuel-kluge.de/wp-content/uploads/2011/07/backboned-screenshot.gif" alt="&quot;Backboned&quot; &middot; AJAX-powered WordPress-Theme &middot; Screenshot" title="&quot;Backboned&quot; &middot; AJAX-powered WordPress-Theme &middot; Screenshot" width="480" height="207" class="aligncenter size-full wp-image-1333" /></p>
<div class="dedo"><a href="http://emanuel.kodingen.com/wordpress/" title="Demo &mdash; &quot;Backboned&quot;" rel="nofollow">Demo</a> | <a href="http://www.emanuel-kluge.de/wp-content/uploads/2011/07/backboned.zip" title="Download &mdash; &quot;Backboned&quot;" lang="en">Download</a></div>
<p>Um mir gelegentlich etwas Zerstreuung vom Lernen zu geben, habe ich einen lange gehegten Plan in die Tat umgesetzt: Ein <abbr title="Asynchronuos JavaScript And XML">AJAX</abbr>-betriebenes WordPress-Theme mit <a href="http://documentcloud.github.com/backbone/">Backbone.js</a> zu bauen. Und zwar keine auf &ldquo;Graceful Degradation&rdquo; setzende Kompromisslösung. Alle Inhalte werden asynchron geladen und sind per Hashbang <abbr title="Uniform Resource Identifier">URI</abbr>s ansteuerbar. Ein Blick in den Quellcode offenbart, was ich meine: Ein <abbr title="JavaScript Object Notation">JSON</abbr>-Objekt mit allen grundlegenden Daten, eine Handvoll jQuery-Templates und das <abbr title="Hypertext Markup Language">HTML</abbr>-Grundgerüst. Das war es an statischem Content - die Darstellung des Inhalts geschieht über Backbone.js.</p>
<p>Damit Suchmaschinen nicht außen vor bleiben und man sich nicht die Mühe machen muss, einen &ldquo;Headless Browser&rdquo; &agrave; la HtmlUnit auf seinem Server zum laufen bringen zu müssen, werden grundsätzlich alle Inhalte als GET-Anfrage mit dem Parameter &ldquo;_escaped_fragment_&rdquo; abgehandelt - die Ausgabe variiert dann je nachdem zwischen statischem <abbr title="Hypertext Markup Language">HTML</abbr> oder einem nackten <abbr title="JavaScript Object Notation">JSON</abbr>-Objekt. So ist sichergestellt, dass die Inhalte trotzdem indiziert werden können. Die einzigen, die in die Röhre schauen, sind Besucher ohne JavaScript.</p>
<p>Um diesen Workaround zu realisieren, war jedoch ein hohes Maß an Improvisation vonnöten. Mit WordPress-Bordmitteln habe ich es nicht geschafft, das Frontend-seitige <abbr title="Uniform Resource Locator">URL</abbr>-Routing von Backbone.js server-seitig abzubilden und entsprechend zu bearbeiten. Ich habe deshalb auf ein simples <abbr title="Model View Controller">MVC</abbr>-Pattern zurück gegriffen und in das eigentliche Theme eine Art Child-Theme integriert. Das ist insgesamt kein Ansatz der mir - besonders in meiner Umsetzung - gefällt. Des weiteren muss man für einen störungsfreien Betrieb des Themes das <abbr title="Uniform Resource Locator">URL</abbr>-Rewriting in den WordPress-Einstellungen deaktivieren.</p>
<p>Darüber hinaus bleibt anzumerken, dass das Theme insgesamt eher rudimentär ist. Ich würde von einem Produktiveinsatz abraten. Allerdings bin ich grundsätzlich von der Idee des Themes überzeugt und freue mich natürlich, wenn jemand sich ebenfalls dafür begeistern kann und daran weiterarbeitet. Gerne auch in Kollaboration mit mir. Zu tun gibt es unter anderem noch:</p>
<ol>
<li>die grundsätzliche Verbesserung des PHP-Codes (sicherer machen, besser in das WordPress-Environment integrieren,&hellip;)</li>
<li>den Funktionsumfang erhöhen (Neueste Kommentare, Tags, Suchfunktion, Sidebar-Widgets(?),&hellip;)</li>
<li>das JavaScript straffen (Performance, geschmeidigere <abbr title="Graphical User Interface">GUI</abbr>-Abläufe,&hellip;)</li>
</ol>
<p>&hellip;um ein paar Aspekte zu nennen.</p>
<p>Ansonsten freue ich mich wie immer über Anregungen und Verbesserungsvorschläge - gerade bei einem Vorhaben dieser Größenordnung hat man als Entwickler nicht wirklich einen umfassenden Überblick.</p>
<p><del datetime="2011-07-15T09:15:57+00:00">PS: Wahrscheinlich werde ich das Teil zeitnah bei GitHub reinladen. Muss mich da aber erst noch anschlauen.</del></p>
<p><ins datetime="2011-07-15T09:15:57+00:00"><strong>Update:</strong> Okay, die Geschichte ist jetzt auch auf GitHub - <a href="https://github.com/herschel666/Backboned" title="&ldquo;Backboned&rdquo; auf GitHub">https://github.com/herschel666/Backboned</a>. Viel Spaß.</ins></p>
<hr /><p>Verwandte Beitr&auml;ge:<ul>
<li><a href='http://www.emanuel-kluge.de/wordpress/free-wordpress-theme-blue-and-grey/' rel='bookmark' title='Free WordPress-Theme: &#8220;Blue and Grey&#8221;'>Free WordPress-Theme: &#8220;Blue and Grey&#8221;</a></li>
<li><a href='http://www.emanuel-kluge.de/tutorial/backbone-js-tutorial-die-merkliste/' rel='bookmark' title='Backbone.js-Tutorial: Die Merkliste'>Backbone.js-Tutorial: Die Merkliste</a></li>
<li><a href='http://www.emanuel-kluge.de/tutorial/semi-transparente-navigation-in-wordpress-mit-css/' rel='bookmark' title='Semi-transparente Navigation in WordPress mit CSS'>Semi-transparente Navigation in WordPress mit CSS</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.emanuel-kluge.de/html-css/ajax-wordpress-theme-backbone-js/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Semi-transparente Navigation in WordPress mit CSS</title>
		<link>http://www.emanuel-kluge.de/tutorial/semi-transparente-navigation-in-wordpress-mit-css/</link>
		<comments>http://www.emanuel-kluge.de/tutorial/semi-transparente-navigation-in-wordpress-mit-css/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 08:20:41 +0000</pubDate>
		<dc:creator>Emanuel</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://www.emanuel-kluge.de/?p=935</guid>
		<description><![CDATA[Demo &#124; Download Heute geht es um eine horizontale Reiternavigation in WordPress, deren inaktive Reiter dank CSS Browser-übergreifend semi-transparent sind. Dafür muss als erstes ein span-Element innerhalb der Listen-Elemente der Navigation eingefügt werden. Dies geschieht über folgenden PHP-Code-Schnipsel: HTML/PHP &#60;div id=&#34;header&#34;&#62; &#60;ul&#62; &#60;li&#60;?php if (is_home() &#124;&#124; is_paged() ) echo &#34; class=\&#34;current_page_item\&#34;&#34;; ?&#62;&#62; &#60;span&#62;&#60;/span&#62; &#60;a href=&#34;&#60;?php [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.emanuel-kluge.de/wp-content/uploads/2010/02/semi-transparente-navigation-in-wordpress-mit-css.jpg" alt="Semi-transparente Navigation in WordPress mit CSS" title="Semi-transparente Navigation in WordPress mit CSS" width="480" height="229" class="aligncenter size-full wp-image-936" /></p>
<div class="dedo"><a href="http://www.emanuel-kluge.de/demo/semi-transparente-navigation-in-wordpress-mit-css/" title="Demo &mdash; Semi-transparente Navigation in WordPress mit CSS" rel="nofollow">Demo</a> | <a href="http://www.emanuel-kluge.de/wp-content/uploads/2010/02/semi-transparente-navigation-in-wordpress-mit-css.zip" title="Download &mdash; Semi-transparente Navigation in WordPress mit CSS">Download</a></div>
<p>Heute geht es um eine horizontale Reiternavigation in <strong lang="en">WordPress</strong>, deren inaktive Reiter dank <strong><abbr title="Cascading Stylesheet" lang="en">CSS</abbr></strong> <span lang="en">Browser</span>-übergreifend semi-transparent sind. Dafür muss als erstes ein <code class="inline">span</code>-Element innerhalb der Listen-Elemente der Navigation eingefügt werden. Dies geschieht über folgenden PHP-<span lang="en">Code</span>-Schnipsel:</p>
<pre>
<dfn><abbr title="Hypertext Markup Language" lang="en">HTML</abbr>/PHP</dfn>
<code class="block">&lt;div id=&quot;header&quot;&gt;
   &lt;ul&gt;
      &lt;li&lt;?php if (is_home() || is_paged() ) echo &quot; class=\&quot;current_page_item\&quot;&quot;; ?&gt;&gt;
         &lt;span&gt;&lt;/span&gt;
         &lt;a href=&quot;&lt;?php bloginfo( &#x27;url&#x27; ); ?&gt;&quot; title=&quot;Back to Main    Page&quot;&gt;Home&lt;/a&gt;
      &lt;/li&gt;
      &lt;?php
         echo preg_replace(&#x27;@\&lt;li([^&gt;]*)&gt;\&lt;a([^&gt;]*)&gt;(.*?)\&lt;\/a&gt;@i&#x27;, &#x27;&lt;li$1&gt;&lt;span&gt;&lt;/span&gt;&lt;a$2&gt;$3&lt;/a&gt;&#x27;, wp_list_pages(&#x27;echo=0&amp;title_li=&amp;depth=1&#x27;));
      ?&gt;
   &lt;/ul&gt;
   &lt;div class=&quot;hr&quot;&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;/div&gt;
</code>
</pre>
<p>Das <code class="inline">span</code>-Element bekommt in diesem Fall die Transparenz. Würde man die Transparenz auf das <code class="inline">a</code>-Element anwenden, würde auch die darin liegende Schrift transparent werden und das soll vermieden werden. Außerdem wird vor der Funktion zur Ausgabe der Seiten noch ein Listenelement mit dem <span lang="en">Link</span> zur Startseite eingesetzt. Der ist optional und kann auch entfernt werden, wenn man <abbr title="zum Beispiel">z.B.</abbr> den <span lang="en">Blog</span>-Titel auf die Startseite verlinkt. Schlussendlich befindet sich unterhalb der Navigation noch ein von einem <code class="inline">div</code>-Element umschlossenes <code class="inline">hr</code>-Element. Unter diesem werden die inaktiven Listenelemente verschwinden.</p>
<p>Kommen wir nun zum <abbr title="Cascading Stylesheet" lang="en">CSS</abbr>:</p>
<pre>
<dfn><abbr title="Cascading Stylesheet" lang="en">CSS</abbr></dfn>
<code class="block">#header ul {
   height: 60px;
   position: relative;
   clear: left;
}

   #header ul li {
      width: auto;
      _width: 140px; /* IE6 needs a fixed width */
      height: 60px;
      margin-left: 20px;
      float: left;
      display: inline;
      position: relative;
   }

      #header ul li span {
         display: block;
         width: 100%;
         _width: 140px; /* IE6 needs a fixed width */
         height: 60px;
         position: absolute;
         top: 10px;
         left: 0;
         z-index: 1000;
         background-color: #FFF;
         background: -moz-linear-gradient( top, #c7e0ed, #fff );
         background: -webkit-gradient( linear, left top, left bottom, from(#c7e0ed), to(#fff) );
         opacity: 0.7;
         filter: alpha(opacity=70);
         -moz-opacity: 0.7;
         filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
         -khtml-opacity: 0.7;
         -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
      }

      #header ul li a:link,
      #header ul li a:visited {
         display: block;
         width: auto;
         height: 24px;
         padding: 13px 20px 23px 20px;
         line-height: 24px;
         position: relative;
         bottom: -10px;
         z-index: 2000;
         color: #0660cf;
         text-decoration: none;
         text-shadow: #FFF 0 1px 2px;
      }

      #header ul li a:hover,
      #header ul li.current_page_item a {
         background-color: #FFF;
         background: -moz-linear-gradient( top, #c7e0ed, #fff ); /* gradient for firefox */
         background: -webkit-gradient( linear, left top, left bottom, from(#c7e0ed), to(#fff) ); /* gradient for chrome and safari */
         position: relative;
         bottom: 0;
         _top: 0; /* special invite for IE6 to get goin' */
      }

      #header ul li a:hover {
         color: #c41604;
      }

      #header ul li a:active {
         color: #0059ce;
         position: relative;
         bottom: -1px;
         _top: 1px; /* special invite for IE6 to get goin' */
      }

.hr {
   height: 30px;
   background-color: #333;
   background: -moz-linear-gradient( top, #333, #555 ); /* gradient for firefox */
   background: -webkit-gradient( linear, left top, left bottom, from(#333), to(#555) ); /* gradient for chrome and safari */
   position: relative;
   z-index: 3000;
}

   .hr hr {
      display: none; /* hiding hr because of the IE. quel surprise! */
   }
</code>
</pre>
<p>Am meisten Platz nehmen hier die Angaben für die Transparenz ein. Das liegt daran, dass alle Eventualitäten - sprich &quot;<span lang="en">Browser</span>&quot; - berücksichtigt werden müssen. Dafür lässt sich diese Navigation aber auch mit reinem <abbr title="Cascading Stylesheet" lang="en">CSS</abbr> und ohne <abbr title="Portable Network Graphics" lang="en">PNG</abbr>-Grafiken umsetzen, die ja im <abbr title="Internet Explorer" lang="en">IE</abbr>6 für Ärger sorgen würden.</p>
<p>Trotzdem funktioniert auch das hier nicht ohne dem ein oder anderen Mätzchen unserer Lieblings-<span lang="en">Browser</span> aus Redmond - den <span lang="en">Internet Explorern</span>. Der <strong><abbr title="Internet Explorer" lang="en">IE</abbr>6</strong> benötigt eine feste Breite für die Listenelemente. Hier ist also etwas <strong>Anpassung</strong> nötig, je nachdem wie lang die Beschriftung der Reiter ist. Der <strong><abbr title="Internet Explorer" lang="en">IE</abbr>7</strong> hingegen hat Probleme mit den <strong><span lang="en">Hover</span>-Zuständen</strong>, so dass die Reiter hier nicht nach oben fahren und intransparent werden, wenn man mit dem <span lang="en">Cursor</span> rüberfährt. Das ist ärgerlich, schränkt jedoch die Benutzbarkeit der Seite nicht ein.</p>
<p>Des weiteren habe ich noch etwas <strong><abbr title="Cascading Stylesheet" lang="en">CSS</abbr>3</strong> verwendet. Mit den aktuellen Versionen von <span lang="en">Firefox</span>, <span lang="en">Safari</span> und <span lang="en">Chrome</span> bekommt man deshalb einen <strong>Farbverlauf</strong> bei den Reitern serviert. In den gleichen <span lang="en">Browsern</span> sowie der aktuellen Version von <span lang="en">Opera</span> gibt es außerdem noch einen leichten <strong>Schlagschatten bei der <span lang="en">Link</span>-Beschriftung</strong>.</p>
<p>Das ist auch schon alles. Und natürlich ist diese Navigation nichts <span lang="en">WordPress</span>-spezifisches. In der Demo gibt es eine statische Variante, die in jeder anderen Seite auch verwendet werden kann.</p>
<p>Ansonsten mein übliches Mantra an dieser Stelle: Wenn ihr Fragen habt oder etwas nicht so funktioniert, wie es soll, nutzt die Kommentar-Funktion. Und wenn euch das <span lang="en">Tutorial</span> gefallen hat, würde ich mich freuen, wenn ihr es <span lang="en">bookmarked</span> oder <span lang="en">twittert</span>. Vielen Dank <img src='http://www.emanuel-kluge.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<hr /><p>Verwandte Beitr&auml;ge:<ul>
<li><a href='http://www.emanuel-kluge.de/tutorial/8bit-style-navigation-mit-fly-out-menus/' rel='bookmark' title='8Bit-Style-Navigation mit Fly-Out-Menus'>8Bit-Style-Navigation mit Fly-Out-Menus</a></li>
<li><a href='http://www.emanuel-kluge.de/tutorial/animierte-image-caption-mit-jquery-unter-wordpress/' rel='bookmark' title='Animierte Image-Caption mit jQuery unter WordPress'>Animierte Image-Caption mit jQuery unter WordPress</a></li>
<li><a href='http://www.emanuel-kluge.de/tutorial/rising-curtain-effekt-bei-input-feldern-mit-jquery/' rel='bookmark' title='&#8220;Rising Curtain&#8221;-Effekt bei Input-Feldern mit jQuery'>&#8220;Rising Curtain&#8221;-Effekt bei Input-Feldern mit jQuery</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.emanuel-kluge.de/tutorial/semi-transparente-navigation-in-wordpress-mit-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zerschossene Umlaute in &#8220;Twitter for WordPress&#8221; reparieren</title>
		<link>http://www.emanuel-kluge.de/tips-und-tricks/zerschossene-umlaute-in-twitter-for-wordpress-reparieren/</link>
		<comments>http://www.emanuel-kluge.de/tips-und-tricks/zerschossene-umlaute-in-twitter-for-wordpress-reparieren/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 08:47:11 +0000</pubDate>
		<dc:creator>Emanuel</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[Umlaute]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.emanuel-kluge.de/?p=554</guid>
		<description><![CDATA[Seit ich diesen Blog gestartet habe, zeige ich meine drei aktuellsten Twitter-Updates mit &#34;Twitter for WordPress&#34; in der Sidebar an. Und seitdem werden die Umlaute zerschossen. Das ist nicht sehr schön und endlich habe ich eine Lösung gefunden, das Problem zu beheben. Und zwar mithilfe des Plug-Ins &#34;WP-RSS Import&#34; von Frank Bueltge. Dieses setzt genau [...]]]></description>
			<content:encoded><![CDATA[<p>Seit ich diesen <span lang="en">Blog</span> gestartet habe, zeige ich meine drei aktuellsten <a href="http://twitter.com/Herschel_R" title="Meinen Twitter-Account besuchen" lang="en" hreflang="en">Twitter-Updates</a> mit <a href="http://wordpress.org/extend/plugins/twitter-for-wordpress/" title="Plug-In-Seite bei WordPress.org besuchen" lang="en" hreflang="en">&quot;Twitter for WordPress&quot;</a> in der <span lang="en">Sidebar</span> an. Und seitdem werden die Umlaute zerschossen. Das ist nicht sehr schön und endlich habe ich eine Lösung gefunden, das Problem zu beheben.</p>
<p>Und zwar mithilfe des <a href="http://bueltge.de/wp-rss-import-plugin/55/" title="Plug-In-Seite bei Frank Bueltge besuchen"><span lang="en">Plug-Ins</span> &quot;<abbr title="WordPress" lang="en">WP</abbr>-<abbr title="Really Simple Syndication" lang="en">RSS</abbr> Import&quot; von Frank Bueltge</a>. Dieses setzt genau wie das <span lang="en">Plug-In &quot;Twitter for WordPress&quot;</span> auf die <span lang="en">WordPress</span>-eigene Funktion <code class="inline">fetch_rss()</code>, welche wiederum die Probleme verursacht.</p>
<p>Die Lösung besteht nun aus zwei <span lang="en">Arrays</span> aus Franks <span lang="en">Plug-In</span>:</p>
<pre>
<dfn>PHP</dfn>
<code class="block">$umlaute = array(&#x27;&amp;#8211;&#x27;, &#x27;&amp;#8212;&#x27;,&hellip;);
$htmlcode = array(&#x27;&amp;ndash;&#x27;, &#x27;&amp;mdash;&#x27;,&hellip;);
</code>
</pre>
<p>Die kompletten <span lang="en">Arrays</span> kann ich hier nicht angeben, da sie viel zu umfangreich sind. Ihr findet sie aber im <a href="http://svn.wp-plugins.org/rss-import/branches/3.7/rssimport.php" title="WP-RSS Import im WordPress Plug-In-Repository" hreflang="en"><abbr title="Subversion" lang="en">SVN</abbr>-System des <span lang="en">Plug-In Directory</span> von <span lang="en">WordPress</span></a>. Die beiden gesuchten <span lang="en">Arrays</span> befinden sich in der Mitte und sind eigentlich nicht zu übersehen.</p>
<p>Diese kopiert ihr <abbr title="beispielsweise">bspw</abbr>. in Zeile 70 der Datei twitter.php von &quot;<span lang="en">Twitter for WordPress</span>&quot;, vor die <code class="inline">foreach</code>-Schleife. Als nächstes kommt die Funktion, die dafür sorgt, dass alle Umlaute, die im <span lang="en">Array</span> <code class="inline">$umlaute</code> stehen, durch die entsprechenden Entitäten aus dem <span lang="en">Array</span> <code class="inline">$htmlcode</code> ersetzt werden:</p>
<pre>
<dfn>PHP</dfn>
<code class="block">$msg = str_replace($umlaute, $htmlcode, $msg);
</code>
</pre>
<p>Das tragt ihr in Zeile 76 der twitter.php ein und schon seid ihr fertig. Von nun an werden alle mit &quot;<span lang="en">Twitter for WordPress</span>&quot; eigebundenen <span lang="en">Tweets</span> sauber dargestellt.</p>
<p>An dieser Stelle noch einmal ein Dank an Frank Bueltge für das Erstellen dieser beiden monströsen <span lang="en">Arrays</span>. Wer genauso wie ich nach langer, erfolgloser Suche darin endlich die Lösung für das Umlaute-Problem gefunden hat, dem möchte ich den <a href="http://bueltge.de/wp-rss-import-plugin/55/" title="Spenden-Button">Spenden-Button</a> auf seiner Seite nahelegen. Einen Euro oder mehr für gute Programmier-Arbeit zu spenden ist eine schöne Geste und sorgt dafür, dass die Entwicklung im <span lang="en">Open-Source</span>-Bereich weiter geht.</p>
<hr /><p>Verwandte Beitr&auml;ge:<ul>
<li><a href='http://www.emanuel-kluge.de/twitter/endlich-twitter-in-der-sidebar/' rel='bookmark' title='Endlich Twitter in der Sidebar'>Endlich Twitter in der Sidebar</a></li>
<li><a href='http://www.emanuel-kluge.de/video/real-life-twitter/' rel='bookmark' title='Real Life Twitter'>Real Life Twitter</a></li>
<li><a href='http://www.emanuel-kluge.de/html-css/ajax-wordpress-theme-backbone-js/' rel='bookmark' title='Studie &ldquo;Backboned&rdquo;: AJAX-powered WordPress-Theme mit Backbone.js'>Studie &ldquo;Backboned&rdquo;: AJAX-powered WordPress-Theme mit Backbone.js</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.emanuel-kluge.de/tips-und-tricks/zerschossene-umlaute-in-twitter-for-wordpress-reparieren/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

