<?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>kulturbanause blog &#187; WordPress</title>
	<atom:link href="http://kulturbanause.de/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://kulturbanause.de</link>
	<description>Artikel, Tutorials, Downloads, Tipps, Hacks, Snippets und aktuelle Szene-News rund um Webdesign, Social Media und digitale Bildbearbeitung</description>
	<lastBuildDate>Sat, 04 Feb 2012 11:03:45 +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>Links im WordPress-Nav-Menu in neuem Fenster öffnen, mit Klassen auszeichnen und um Mikroformate erweitern</title>
		<link>http://kulturbanause.de/2012/01/links-im-wordpress-nav-menu-in-neuem-fenster-offnen-mit-klassen-auszeichnen-und-um-mikroformate-erweitern/</link>
		<comments>http://kulturbanause.de/2012/01/links-im-wordpress-nav-menu-in-neuem-fenster-offnen-mit-klassen-auszeichnen-und-um-mikroformate-erweitern/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 08:00:47 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=7294</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2012/01/design-wordpress-menu.png" class="attachment-post-thumbnail wp-post-image" alt="design-wordpress-menu" title="design-wordpress-menu" /></div>WordPress bietet mit dem wp_nav_menu eine tolle Möglichkeit Navigationselemente unkompliziert über das Dashboard anzulegen und zu verwalten. Normalerweise verlinkt man statische Seiten oder Kategorien innerhalb von WordPress, doch ab und zu möchte man auch externe Seiten mit in die Navigation aufnehmen, in einem neuen Fenster öffnen und vielleicht sogar mit einem entsprechenden Icon kennzeichnen. WordPress … </p><p><a href="http://kulturbanause.de/2012/01/links-im-wordpress-nav-menu-in-neuem-fenster-offnen-mit-klassen-auszeichnen-und-um-mikroformate-erweitern/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2012/01/design-wordpress-menu.png" class="attachment-post-thumbnail wp-post-image" alt="design-wordpress-menu" title="design-wordpress-menu" /></div><p><strong>WordPress bietet mit dem <code>wp_nav_menu</code> eine tolle Möglichkeit Navigationselemente unkompliziert über das Dashboard anzulegen und zu verwalten.</strong> Normalerweise verlinkt man statische Seiten oder Kategorien innerhalb von WordPress, doch ab und zu möchte man auch externe Seiten mit in die Navigation aufnehmen, in einem neuen Fenster öffnen und vielleicht sogar mit einem entsprechenden Icon kennzeichnen.<br />
WordPress bietet von Haus aus die Möglichkeit Links mit einer Klasse, einem Linkziel, einer Beschreibung und einem XML-Attribut auszuzeichnen. Da die Funktion jedoch standardmäßig nicht aktiviert ist, und ich sogar schon Anleitungen gesehen habe die Features mit JavaScript nachzurüsten, möchte ich euch kurz zeigen wo ihr sie einschaltet. </p>
<p><span id="more-7294"></span></p>
<h3>Menü-Optionen</h3>
<p>Im WordPress-Backend seht ihr oben rechts den Button "Optionen einblenden". Auffällig ist, dass sich unter diesem Link je nach aufgerufener Seite unterschiedliche Optionen verstecken. Es lohnt sich also häufiger mal die Optionen zu besuchen.<br />
Wenn ihr euch im Bereich "Design → Menüs" befindet, könnt Ihr in den Optionen die oben beschriebenen Punkte aktivieren. </p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2012/01/wordpress-menu-optionen1.png" alt="" title="wordpress-menu-optionen" width="550" height="78" class="alignnone size-full wp-image-7299" /></figure>
<p>Anschließend stehen euch für jeden Menüpunkt die erweiterten Einstellungsmöglichkeiten zur Verfügung. </p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2012/01/wordpress-menu-optionen-menupunkt.png" alt="" title="wordpress-menu-optionen-menupunkt" width="550" height="395" class="alignnone size-full wp-image-7296" /></figure>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2012/01/links-im-wordpress-nav-menu-in-neuem-fenster-offnen-mit-klassen-auszeichnen-und-um-mikroformate-erweitern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress-Artikel-Editor für bestimmte Seiten-Templates deaktivieren</title>
		<link>http://kulturbanause.de/2012/01/wordpress-artikel-editor-fur-bestimmte-seiten-templates-deaktivieren/</link>
		<comments>http://kulturbanause.de/2012/01/wordpress-artikel-editor-fur-bestimmte-seiten-templates-deaktivieren/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 08:43:03 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=7072</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-template-file.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-template-file" title="wordpress-template-file" /></div>Seiten-Templates (page templates) werden in WordPress häufig dazu benutzt zusätzliche Inhalte in eine bestimmte Unterseite zu integrieren. Über ein Page-Template wird häufig ein Kontaktformular, eine Bildergalerie oder ein individueller Loop geladen. In einigen Fällen wird sogar der gesamte Inhalt dieser Seite ausgetauscht, was den WYSIWYG-Editor dann für diese spezielle Seite überflüssig macht und den Kunden … </p><p><a href="http://kulturbanause.de/2012/01/wordpress-artikel-editor-fur-bestimmte-seiten-templates-deaktivieren/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-template-file.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-template-file" title="wordpress-template-file" /></div><p><strong>Seiten-Templates (page templates) werden in WordPress häufig dazu benutzt zusätzliche Inhalte in eine bestimmte Unterseite zu integrieren.</strong> Über ein Page-Template wird häufig ein Kontaktformular, eine Bildergalerie oder ein individueller Loop geladen. In einigen Fällen wird sogar der gesamte Inhalt dieser Seite ausgetauscht, was den <acronym title="What You See Is What You Get">WYSIWYG</acronym>-Editor dann für diese spezielle Seite überflüssig macht und den Kunden daher häufig verwirrt. Mit dem folgenden Snippet könnt ihr den Editor für bestimmte Seiten-Templates über die <code>functions.php</code> des Themes deaktivieren. </p>
<p><span id="more-7072"></span></p>
<h3>function.php</h3>
<p>Fügt folgenden Code in die <code>functions.php</code> eures Themes ein und passt den Namen des Templates in Zeile 6 entsprechend an. Sobald das Template einer Seite zugewiesen und gespeichert wurde, ist der Editor nicht mehr sichtbar. </p>
<pre class="brush: php; title: ; notranslate">
add_action( 'admin_init', 'hide_editor' );
function hide_editor() {
	$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
	if( !isset( $post_id ) ) return;
	$template_file = get_post_meta($post_id, '_wp_page_template', true);
    if($template_file == 'test-page.php'){ // Hier den Dateinamen anpassen!
    	remove_post_type_support('page', 'editor');
    }
}
</pre>
<p>Der folgende Screenshot zeigt den fehlenden Editor für die das aktive Template "Beispiel-Template". </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-templates.png" alt="" title="wordpress-templates" width="550" height="239" class="alignnone size-full wp-image-7095" /><br />
</figure>
<p class="small">via <a href="http://wpsnipp.com/index.php/functions-php/disable-content-editor-for-specific-page-template" target="_blank">wpsnipp</a></p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2012/01/wordpress-artikel-editor-fur-bestimmte-seiten-templates-deaktivieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: Anzahl der Kommentare und Trackbacks getrennt darstellen</title>
		<link>http://kulturbanause.de/2011/12/wordpress-anzahl-der-kommentare-und-trackbacks-getrennt-darstellen/</link>
		<comments>http://kulturbanause.de/2011/12/wordpress-anzahl-der-kommentare-und-trackbacks-getrennt-darstellen/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 15:45:23 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6913</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/comments-trackbacks.png" class="attachment-post-thumbnail wp-post-image" alt="comments-trackbacks" title="comments-trackbacks" /></div>In WordPress ist es mit Bordmitteln, etwa einem Template Tag, leider nicht möglich die Anzahl der Kommentare und die der Trackbacks getrennt von einander darzustellen. In der Datenbank unterscheidet WordPress hingegen beide Typen, und markiert echte Kommentare in einem zusätzlichen Feld. Mit einer entsprechenden Funktion kann geprüft werden ob das Feld ausgefüllt ist, wodurch sich … </p><p><a href="http://kulturbanause.de/2011/12/wordpress-anzahl-der-kommentare-und-trackbacks-getrennt-darstellen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/comments-trackbacks.png" class="attachment-post-thumbnail wp-post-image" alt="comments-trackbacks" title="comments-trackbacks" /></div><p><strong>In WordPress ist es mit Bordmitteln, etwa einem Template Tag, leider nicht möglich die Anzahl der Kommentare und die der Trackbacks getrennt von einander darzustellen. </strong>In der Datenbank unterscheidet WordPress hingegen beide Typen, und markiert echte Kommentare in einem zusätzlichen Feld. Mit einer entsprechenden Funktion kann geprüft werden ob das Feld ausgefüllt ist, wodurch sich beide Arten von Kommentaren einzeln anzeigen lassen. </p>
<p><span id="more-6913"></span></p>
<h3>Anzahl an Kommentaren darstellen</h3>
<p>Der folgende Code gehört üblicherweise in die <code>functions.php</code>. Er kann jedoch auch im gleichen Template eingesetzt werden.<br />
Die Funktion prüft ob Kommentare vorhanden sind und gibt (sofern das Ergebnis nicht Null ist) die Anzahl aus. </p>
<pre class="brush: php; title: ; notranslate">
function comment_count() { global $post; $thePostID = $post-&gt;ID; global $wpdb;
$count = &quot;SELECT COUNT(*) FROM $wpdb-&gt;comments WHERE comment_type = ' '
AND comment_post_ID = $thePostID&quot;; $co_number = $wpdb-&gt;get_var($count);
if ($co_number == 0) {} else {echo $co_number;}
}
</pre>
<p>Mit folgenden Snippet wird die Anzahl der Kommentare an einer beliebigen Stelle des Themens dargestellt. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php comment_count(); ?&gt;
</pre>
<h3>Anzahl der Trackbacks darstellen</h3>
<p>Der Code für die Darstellung der Trackbacks funktioniert auf die gleiche Art und Weise. Folgendes Snippet gehört in die <code>functions.php</code>.</p>
<pre class="brush: php; title: ; notranslate">
function trackback_count()
{ global $post;
$thePostID = $post-&gt;ID; global $wpdb; $count = &quot;SELECT COUNT(*) FROM $wpdb-&gt;comments
WHERE comment_type != ' '
AND comment_post_ID = $thePostID&quot;; $tb_number = $wpdb-&gt;get_var($count);
if ($tb_number == 0) {} else {echo $tb_number;} }
</pre>
<p>Mit diesem Snippet wird die Anzahl der Trackbacks ausgegeben. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php trackback_count(); ?&gt;
</pre>
<h3>Credits</h3>
<p>Dieses Snippet habe ich auf  denkvirtuose.de gefunden und unverändert übernommen. Es funktioniert einwandfrei und ist auch auf diesem Blog im Einsatz. Vielen Dank dafür! </p>
<ul>
<li><a target="_blank "href="http://denkvirtuose.de/wordpress/die-anzahl-der-kommentare-und-trackbacks-getrennt-anzeigen.html">denkvirtuose.de/wordpress/die-anzahl-der-kommentare-und-trackbacks-getrennt-anzeigen.html</a></li>
</ul>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/12/wordpress-anzahl-der-kommentare-und-trackbacks-getrennt-darstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Post-Thumbnails aus RSS-Feed auslesen. preg_match und Regular Expressions</title>
		<link>http://kulturbanause.de/2011/12/wordpress-post-thumbnails-aus-rss-feed-auslesen-preg_match-und-regular-expressions/</link>
		<comments>http://kulturbanause.de/2011/12/wordpress-post-thumbnails-aus-rss-feed-auslesen-preg_match-und-regular-expressions/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 08:09:04 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6943</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-rss-feed.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-rss-feed" title="wordpress-rss-feed" /></div>Ab und zu möchte man den RSS-Feed seines WordPress Blogs auf einer anderen Seite einbinden, um dort beispielsweise die neuesten fünf Beiträge zu bewerben. Der RSS-Feed ist schnell ausgelesen, ein Problem sind häufig die Post-Thumbnails der Artikel. Die Artikelbilder werden von WordPress nicht in den Feed übertragen. Um die Post-Thumbnails dennoch im Feed anzuzeigen, wird … </p><p><a href="http://kulturbanause.de/2011/12/wordpress-post-thumbnails-aus-rss-feed-auslesen-preg_match-und-regular-expressions/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-rss-feed.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-rss-feed" title="wordpress-rss-feed" /></div><p><strong>Ab und zu möchte man den RSS-Feed seines WordPress Blogs auf einer anderen Seite einbinden, um dort beispielsweise die neuesten fünf Beiträge zu bewerben.</strong> <a href="http://kulturbanause.de/2011/01/rss-feed-von-wordpress-auslesen/" title="RSS-Feed von WordPress auslesen">Der RSS-Feed ist schnell ausgelesen</a>,  ein Problem sind häufig die Post-Thumbnails der Artikel.<br />
Die Artikelbilder werden von WordPress nicht in den Feed übertragen. Um die Post-Thumbnails dennoch im Feed anzuzeigen, wird häufig in der <code>functions.php</code> <a href="http://www.wpbeginner.com/wp-tutorials/how-to-add-post-thumbnail-to-your-wordpress-rss-feeds/" target="_blank">ein Snippet</a> eingefügt das die Bilder in den Inhaltsbereich des Feeds lädt. Da sich die Bilder dann allerdings zusammen mit dem Text und anderen Bildern in einem Feed-Element befinden, ist schwierig sie gezielt auszulesen.</p>
<p><span id="more-6943"></span></p>
<h3>Element mit PHP preg_match identifizieren</h3>
<p>Das Artikelbild wird im Feed als <code>img</code> direkt vor dem eigentlichen Inhalt des Beitrags eingebunden. Semantisch betrachtet befindet es sich aber ebenso wie der Beitrag selbst innerhalb des Elements "<code>&lt;description&gt;</code>". Mit <code>preg_match</code> lasst sich das Artikelbild über die Dateiendung identifizieren und in einem Array speichern. Anschließend zeigen wir immer nur das erste Bild des Array. </p>
<p>Alles was ihr benötigt, ist eine Variabel bzw. ein Array in der ihr den Feed-Inhalt (<code>description</code>) verfügbar habt. Sollte das nicht der Fall sein, schaut euch bitte noch einmal diesen Artikel an: <a href="http://kulturbanause.de/2011/01/rss-feed-von-wordpress-auslesen/" title="RSS-Feed von WordPress auslesen" target="_blank">RSS-Feed von WordPress auslesen</a>. </p>
<p>Im folgenden Beispiel-Code wird <code>$quelle</code> nach Bildern durchsucht, und diese der Reihe nach in <code>$ziel</code> abgespeichert. </p>
<pre class="brush: php; title: ; notranslate">
preg_match(&quot;/src=[\&quot;\']?([^\&quot;\']?.*(png|jpg|gif))[\&quot;\']?/i&quot;, $quelle, $ziel); // Bilder werden aus $quelle ausgelesen und in $ziel gespeichert.
</pre>
<p>Anschließend könnt ihr mit folgendem Code das erste Elemente des Array auslesen und in einem <code>img</code>-Tag einbinden.</p>
<pre class="brush: php; title: ; notranslate">
&lt;img &lt;?php print_r($ziel[0]); ?&gt; height=&quot;100&quot; width=&quot;100&quot; alt=&quot;&quot;/&gt;
</pre>
<p>Mit diesem "regulären Ausdruck" ist es möglich die Post-Thumbnails von WordPress aus dem Feed zu extrahieren und in Kombination mit anderen ausgelesenen Feed-Elementen auf einer externen Website darzustellen. </p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/12/wordpress-post-thumbnails-aus-rss-feed-auslesen-preg_match-und-regular-expressions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress-Editor: Komplexe Inhaltsstrukturen benutzerfreundlich pflegen</title>
		<link>http://kulturbanause.de/2011/12/wordpress-editor-komplexe-inhaltsstrukturen-benutzerfreundlich-pflegen/</link>
		<comments>http://kulturbanause.de/2011/12/wordpress-editor-komplexe-inhaltsstrukturen-benutzerfreundlich-pflegen/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 07:00:14 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6918</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-editor-styling.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-editor-styling" title="wordpress-editor-styling" /></div>Wenn ihr WordPress für Kundenprojekte einsetzt, werdet ihr schnell merken, dass einige Kunden Schwierigkeiten mit dem WordPress-Editor haben. Insbesondere wenn ein komplexer Inhaltsbereich gefüllt werden soll – beispielsweise ein mehrspaltiges Layout – sind viele Kunden überfordert. Und wir wollen den Kunden ja auch nicht mit der HTML-Variante quälen. Ihr könnt den Editor ganz einfach mit … </p><p><a href="http://kulturbanause.de/2011/12/wordpress-editor-komplexe-inhaltsstrukturen-benutzerfreundlich-pflegen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-editor-styling.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-editor-styling" title="wordpress-editor-styling" /></div><p><strong>Wenn ihr WordPress für Kundenprojekte einsetzt, werdet ihr schnell merken, dass einige Kunden Schwierigkeiten mit dem WordPress-Editor haben. </strong>Insbesondere wenn ein komplexer Inhaltsbereich gefüllt werden soll – beispielsweise ein mehrspaltiges Layout – sind viele Kunden überfordert. Und wir wollen den Kunden ja auch nicht mit der HTML-Variante quälen.<br />
Ihr könnt den Editor ganz einfach mit Standard-Inhalten füllen und mit einer eigenen CSS-Datei stylen. Und das sogar für verschiedene <code>post_types</code> individuell. Es bietet sich u.U. also an, vorab eine HTML-Struktur festzulegen und für den Kunden benutzerfreundlich darzustellen. </p>
<p><span id="more-6918"></span></p>
<h3>WordPress-Editor mit Standard-Inhalten füllen</h3>
<p>Über die <code>functions.php</code> des Themes könnt ihr den Editor mit Default-Content füllen. Häufig wird als Einsatzbeispiel ein wiederkehrender Absatz am Ende von Artikeln genannt den ich persönlich allerdings direkt ins Template schreiben würde.<br />
Ich möchte in diesem Beispiel ein HTML-Grundgerüst für verschiedene Seitentypen anlegen, und anschließend so gestalten, dass der Kunde sich leicht zurechtfindet. Aber beginnen wir erst einmal mit der grundsätzlichen Funktionsweise. </p>
<p>Folgender Code gehört in die <code>functions.php</code> und fügt Standard-Inhalt in den Editor verschiedener Beitragstypen ein. Zunächst erstellen wir den Inhalt für statische Seiten und Custom Post Types. Anschließend den Inhalt für alle verbliebenen Beitragstypen wie die Artikel. </p>
<pre class="brush: php; title: ; notranslate">
// Standard-Inhalte für verschiedene Beitragstypen
function kb_custom_editor_content( $kb_default_content ) {
   global $current_screen;

   // Für statische Seiten
   if ( $current_screen-&gt;post_type == 'page') {
	  $kb_default_content = 'Dieser Inhalt erscheint bei statischen Seiten.';
   }

   // Für Custom Post Types
   elseif ( $current_screen-&gt;post_type == 'POSTTYPE') /* POSTTYPE durch den Namen des Post Types ersetzen! */ {
	  $kb_default_content = 'Dieser Inhalt erscheint bei Custom post Types.';
   }

   // Alle weiteren Beitragstypen wie Artikel etc.
   else {
	  $kb_default_content = 'Dieser Inhalt erscheint bei Artikeln und allen Beitragsarten, die nicht zuvor definiert wurden.';
   }

   return $kb_default_content;
 }

 add_filter( 'default_content', 'kb_custom_editor_content' );
</pre>
<p>Wenn ihr anschließend einen neuen Inhalt erstellt, wird automatisch der Default-Content eingefügt. Auf bereits erstellte Beiträge hat die Funktion keinerlei Auswirkungen. </p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-default-editor-content.png" alt="" title="wordpress-default-editor-content" width="550" height="174" class="alignnone size-full wp-image-6921" /></figure>
<p>Der hier abgebildete Code lädt nur eine Textzeile in den entsprechenden Editor. Ihr könnt auch komplexe HTML-Strukturen festlegen. Wie das funktioniert und welche Vorteile es hat zeige ich später.  </p>
<h3>Ein eigenes Stylesheet für den Editor: editor-style.css</h3>
<p>Ihr habt den Editor mit Default-Content gefüllt, jetzt fehlt noch eine CSS-Datei um die Inhalte des Editors – sei es nun Default-Content oder nachträglich erstelle Elemente – ansprechend zu gestalten. </p>
<p>Fügt den nachfolgenden Code in die <code>functions.php</code> eures Themes ein. Anschließend sucht der WordPress-Editor im Stammordner des Themes (dort wo auch die <code>style.css</code> abgelegt ist), nach einem CSS-Dokument namens <code>editor-style.css</code>. Mit diesem Stylesheet könnt ihr den Inhalt des Editors dann gestalten. </p>
<pre class="brush: php; title: ; notranslate">
// Individuelles Stylesheet für den Editor
function kb_custom_editor_stylesheet() {
   add_editor_style(
	   array('editor-style.css')
   );
}

add_action( 'admin_head', 'kb_custom_editor_stylesheet' );
</pre>
<h3>Eigene Stylesheets für Custom Post Types</h3>
<p>Das zuvor gezeigte Snippet gilt immer für alle Editor-Bereiche und für alle Arten von Inhalten. Wenn ihr allerdings mit Custom Post Types arbeitet, kann es Sinn machen für verschiedene Custom Post Types verschiedene Stylesheets anzulegen.<br />
Das folgende Snippet ist eine kleine Erweiterung des vorherigen. Nun wird für jeden Custom Post Type nach einem eigenen Dokument gesucht. Die Namenstruktur ist immer <code>editor-style-NAME DES POST TYPES.css</code>.</p>
<pre class="brush: php; title: ; notranslate">
// Individuelle Stylesheets für den Editor (je nach Post Type)
function kb_custom_editor_stylesheet() {
   global $current_screen;

   add_editor_style(
	   array(
		  'editor-style.css',
		  'editor-style-'.$current_screen-&gt;post_type.'.css'
		)
   );
 }

 add_action( 'admin_head', 'kb_custom_editor_stylesheet' );
</pre>
<h3>Und so sieht’s in der Praxis aus</h3>
<p>Ihr habt nun alle Basics gelernt, um den Editor für eure Kunden ansprechend zu gestalten. Ich möchte euch mit einem einfachen Praxisbeispiel noch zeigen, wie das Ganze dann aussehen könnte.  </p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2011/12/wordpress-editor-elements.png" alt="" title="wordpress-editor-elements" width="550" height="276" class="alignnone size-full wp-image-6922" /></figure>
<p>Über den Default-Content wurden nur <code>div</code>-Container erstellt. Der beschreibende Text über den Textbereichen wird über das Pseudoelement <code>:before</code> per CSS generiert. Der Vorteil an <code>:before</code> ist, dass der Inhalt nur im Editor – nicht aber im Frontend sichtbar ist.  </p>
<p>In der <code>functions.php</code> habe ich folgenden Inhalt voreingestellt. </p>
<pre class="brush: php; title: ; notranslate">
[...]

$kb_default_content = '
  	  &lt;div class=&quot;entry&quot;&gt;&lt;/div&gt;
	  &lt;div class=&quot;contentMain&quot;&gt;&lt;/div&gt;
	  &lt;div class=&quot;contentAside&quot;&gt; &lt;/div&gt;
	  ';
[...]
</pre>
<p>Die <code>editor-styles.css</code> habe ich anschließend mit diesem Inhalt gefüllt. </p>
<pre class="brush: css; title: ; notranslate">

* {font-family:Arial, Helvetica, sans-serif;}

.wp-editor {width:800px;}

.entry:before {
	content:'Einleitungstext';
	color:silver;
	font-size:11px;
	position:absolute;
	top:-20px;
	left:0;
}

.entry,
.contentMain,
.contentAside {
	float:left;
	padding:15px;
	margin:30px 10px 10px 10px;
	border:1px dashed silver;
	position:relative;
}

.contentMain:before {
	clear:both;
	float:none;
}

.entry {width:750px;}

.contentMain {width:550px;}

.contentMain:before {
	content:'Haupt-Inhalt';
	color:silver;
	font-size:11px;
	position:absolute;
	top:-20px;
	left:0;
}

.contentAside {width:150px; margin-right:0;}

.contentAside:before {
	content:'Ergänzender Inhalt';
	color:silver;
	font-size:11px;
	position:absolute;
	top:-20px;
	left:0;
}
</pre>
<p>Ich habe übrigens bewusst mit festen Pixelgrößen gearbeitet, damit der Kunde besser einschätzen kann wo später auf der Website ein Zeilenumbruch entsteht. Das ist zwar meist ein wenig Gefummel bis es wirklich so klappt wie auf der Website, dann ist es allerdings ein echter Mehrwert. </p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/12/wordpress-editor-komplexe-inhaltsstrukturen-benutzerfreundlich-pflegen/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Theme Options Page für WordPress erstellen</title>
		<link>http://kulturbanause.de/2011/11/theme-options-page-fur-wordpress-erstellen/</link>
		<comments>http://kulturbanause.de/2011/11/theme-options-page-fur-wordpress-erstellen/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 07:00:06 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6607</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/11/wordpress-theme-options-page.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-theme-options-page" title="wordpress-theme-options-page" /></div>Komplexe und hochwertige WordPress-Themes verfügen in der Regel über eine so genannte "Theme Options Page" - eine zusätzliche Seite im Dashboard anhand der ein Benutzer das Theme über die normalen Möglichkeiten hinaus anpassen kann. Das TwentyEleven-Theme von WordPress wird beispielsweise mit einer solchen Options-Page ausgeliefert. Hier könnt ihr u.a. auswählen ob das Theme schwarz oder … </p><p><a href="http://kulturbanause.de/2011/11/theme-options-page-fur-wordpress-erstellen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/11/wordpress-theme-options-page.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-theme-options-page" title="wordpress-theme-options-page" /></div><p><strong>Komplexe und hochwertige WordPress-Themes verfügen in der Regel über eine so genannte "Theme Options Page" - eine zusätzliche Seite im Dashboard anhand der ein Benutzer das Theme über die normalen Möglichkeiten hinaus anpassen kann.</strong> Das TwentyEleven-Theme von WordPress wird beispielsweise mit einer solchen Options-Page ausgeliefert. Hier könnt ihr u.a. auswählen ob das Theme schwarz oder weiß sein soll, in welcher Farbe Verlinkungen auf der Website dargestellt werden und ob ihr eine Sidebar anzeigen möchtet.<br />
In diesem Beitrag möchte ich euch zeigen wie ihr selbst eine Theme-Options-Page erstellt. Anhand eines leicht verständlichen Beispiels werdet ihr das Prinzip sicher schnell auf eure eigenen Projekte übertragen können. </p>
<p><span id="more-6607"></span></p>
<h3>WordPress Theme-Options-Pages</h3>
<p>Ich möchte einmal kurz zusammenfassen was wir jetzt vorhaben. Wir erstellen eine Theme Options Page für ein beliebiges WordPress-Theme auf der wir zwei Eingabefelder platzieren. Das erste Eingabefeld dient dazu das Copyright-Datum im Footer des Themes anzupassen, in das zweite Feld kann der Benutzer seinen Google Analytics Tracking Code eintragen. Beide Anpassungen sind normalerweise nur möglich indem der Code der Website bearbeitet und anschließend hochgeladen wird. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/11/theme-options-page-wordpress-2011.png" alt="Theme Options-Page in WordPress-TwentyEleven" title="theme-options-page-wordpress-2011" width="550" height="400" class="alignnone size-full wp-image-6713" /></p>
<figcaption>Theme-Options-Page im 2011-Theme von WordPress</figcaption>
</figure>
<p>Wir arbeiten mit der functions.php des Themes, mit dem WordPress-Dashboard und mit der footer.php. Zunächst erstellen wir über die functions.php die Options-Seite mit allen Inhalten. Über das Dashboard können dann die Daten eingetragen werden. Die Eingabewerte werden in der Options-Tabelle der Datenbank abgelegt. Im letzten Schritt lesen wir die eingetragenen Werte in der footer.php des Themes wieder aus.</p>
<p>Das klingt kompliziert? Ist es aber nicht. 2x Copy &#038; Paste und alles läuft. </p>
<h3>functions.php - Theme Options Page anlegen</h3>
<p>Der folgende Code gehört in die functions.php eures Themes. Ich habe euch die einzelnen Bereiche der Datei im Code kommentiert. </p>
<pre class="brush: php; title: ; notranslate">

/* ------------------ */
/* theme options page */
/* ------------------ */

add_action( 'admin_init', 'theme_options_init' );
add_action( 'admin_menu', 'theme_options_add_page' );

// Einstellungen registrieren (http://codex.wordpress.org/Function_Reference/register_setting)
function theme_options_init(){
	register_setting( 'kb_options', 'kb_theme_options', 'kb_validate_options' );
}

// Seite in der Dashboard-Navigation erstellen
function theme_options_add_page() {
	add_theme_page('Optionen', 'Optionen', 'edit_theme_options', 'theme-optionen', 'kb_theme_options_page' ); // Seitentitel, Titel in der Navi, Berechtigung zum Editieren (http://codex.wordpress.org/Roles_and_Capabilities) , Slug, Funktion
}

// Optionen-Seite erstellen
function kb_theme_options_page() {
global $select_options, $radio_options;
if ( ! isset( $_REQUEST['settings-updated'] ) )
	$_REQUEST['settings-updated'] = false; ?&gt;

&lt;div class=&quot;wrap&quot;&gt;
&lt;?php screen_icon(); ?&gt;&lt;h2&gt;Theme-Optionen für &lt;?php bloginfo('name'); ?&gt;&lt;/h2&gt; 

&lt;?php if ( false !== $_REQUEST['settings-updated'] ) : ?&gt;
&lt;div class=&quot;updated fade&quot;&gt;
	&lt;p&gt;&lt;strong&gt;Einstellungen gespeichert!&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;

  &lt;form method=&quot;post&quot; action=&quot;options.php&quot;&gt;
	&lt;?php settings_fields( 'kb_options' ); ?&gt;
    &lt;?php $options = get_option( 'kb_theme_options' ); ?&gt;

    &lt;table class=&quot;form-table&quot;&gt;
      &lt;tr valign=&quot;top&quot;&gt;
        &lt;th scope=&quot;row&quot;&gt;Copyright&lt;/th&gt;
        &lt;td&gt;&lt;input id=&quot;kb_theme_options[copyright]&quot; class=&quot;regular-text&quot; type=&quot;text&quot; name=&quot;kb_theme_options[copyright]&quot; value=&quot;&lt;?php esc_attr_e( $options['copyright'] ); ?&gt;&quot; /&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr valign=&quot;top&quot;&gt;
        &lt;th scope=&quot;row&quot;&gt;Google Analytics&lt;/th&gt;
        &lt;td&gt;&lt;textarea id=&quot;kb_theme_options[analytics]&quot; class=&quot;large-text&quot; cols=&quot;50&quot; rows=&quot;10&quot; name=&quot;kb_theme_options[analytics]&quot;&gt;&lt;?php echo esc_textarea( $options['analytics'] ); ?&gt;&lt;/textarea&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;

    &lt;!-- submit --&gt;
    &lt;p class=&quot;submit&quot;&gt;&lt;input type=&quot;submit&quot; class=&quot;button-primary&quot; value=&quot;Einstellungen speichern&quot; /&gt;&lt;/p&gt;
  &lt;/form&gt;
&lt;/div&gt;
&lt;?php }

// Strip HTML-Code:
// Hier kann definiert werden, ob HTML-Code in einem Eingabefeld
// automatisch entfernt werden soll. Soll beispielsweise im
// Copyright-Feld KEIN HTML-Code erlaubt werden, kommentiert die Zeile
// unten wieder ein. http://codex.wordpress.org/Function_Reference/wp_filter_nohtml_kses
function kb_validate_options( $input ) {
	// $input['copyright'] = wp_filter_nohtml_kses( $input['copyright'] );
	return $input;
}
</pre>
<p>Es besteht natürlich auch die Möglichkeit die Theme-Options-Page in einer eigenen Datei anzulegen und diese dann in die functions.php zu laden. Das macht vor allem dann Sinn, wenn die Options-Seite sehr umfangreich ist. Mit diesem Snippet ladet ihr eine externe Datei in die functions.php. Die Datei muss im gleichen Verzeichnis wie die functions.php abgelegt werden.   </p>
<pre class="brush: php; title: ; notranslate">
require_once ( get_stylesheet_directory() . '/theme-options-page.php' );
</pre>
<h3>Theme-Options-Page im Dashboard</h3>
<p>Im WordPress-Backend findet ihr die Theme-Options-Page nun im Bereich "Design". </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/11/wordpress-theme-options-page1.png" alt="" title="wordpress-theme-options-page" width="550" height="210" class="alignnone size-full wp-image-6733" /><br />
</figure>
<p>Tragt in beide Felder nun einen Testinhalt ein und speichert die Änderung. Im letzten Schritt übertragen wir die Eingabe in das entsprechende Template.  </p>
<h3>footer.php - Eingaben im Template anzeigen</h3>
<p>Alles was noch fehlt ist das Snippet um die gespeicherten Daten im Theme auszugeben. Für dieses Beispiel benutzt ihr dazu die footer.php.</p>
<p>Zunächst ruft ihr mit <code>get_options</code> (<a href="http://codex.wordpress.org/Function_Reference/get_option" target="_blank">codex.wordpress.org/Function_Reference/get_option</a>) die entsprechenden Werte aus der Datenbank ab. Anschließend stellt ihr die Inhalte über <code>echo</code> dar.</p>
<p>Das folgende Snippet gibt beide Inhalte direkt untereinander aus. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
 $options = get_option('kb_theme_options');
 echo $options['copyright'];
 echo $options['analytics'];
?&gt;
</pre>
<p>Das wars auch schon. </p>
<h3>Weitere Links zum Thema</h3>
<p>Wenn ihr euch eingehender mit der Erstellung von Theme-Options-Pages befassen wollt, schaut euch auch folgende empfehlenswerte Artikel und Tutorials an. </p>
<ul>
<li><a href="http://net.tutsplus.com/tutorials/wordpress/how-to-create-a-better-wordpress-options-panel/" target="_blank">net.tutsplus.com/tutorials/wordpress/how-to-create-a-better-wordpress-options-panel</a></li>
<li><a href="http://wpshout.com/create-an-advanced-options-page-in-wordpress/" target="_blank">wpshout.com/create-an-advanced-options-page-in-wordpress</a></li>
<li><a href="http://smashingwall.com/wordpress/theme-options-page-resources/" target="_blank">smashingwall.com/wordpress/theme-options-page-resources</a></li>
</ul>
<p>Außerordentlich lohnenswert ist auch diese Basis-Theme-Options-Page. Hier sind alle Arten von Eingabefeldern (Input, Select, Radio, Checkbox etc.) enthalten. </p>
<ul>
<li><a href="http://themeshaper.com/2010/06/03/sample-theme-options/" target="_blank">themeshaper.com/2010/06/03/sample-theme-options/</a></li>
</ul>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/11/theme-options-page-fur-wordpress-erstellen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Custom Post Types um Sticky-Funktion erweitern</title>
		<link>http://kulturbanause.de/2011/11/wordpress-custom-post-types-um-sticky-funktion-erweitern/</link>
		<comments>http://kulturbanause.de/2011/11/wordpress-custom-post-types-um-sticky-funktion-erweitern/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 10:12:24 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Benutzerdefinierte Felder]]></category>
		<category><![CDATA[Custom Post Types]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6668</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/11/sticky-post.png" class="attachment-post-thumbnail wp-post-image" alt="sticky-post" title="sticky-post" /></div>Normalerweise ist es in WordPress möglich, Artikel auf "sticky" zu setzen und somit im Loop oben zu halten. In der deutschen Version nennt sich die Funktion "auf der Startseite halten" und wird im Editor in der rechten Seitenleiste im Bereich "Status" angezeigt. Wenn ihr allerdings WordPress um Custom Post Types erweitert habt, fehlt dort die … </p><p><a href="http://kulturbanause.de/2011/11/wordpress-custom-post-types-um-sticky-funktion-erweitern/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/11/sticky-post.png" class="attachment-post-thumbnail wp-post-image" alt="sticky-post" title="sticky-post" /></div><p><strong>Normalerweise ist es in WordPress möglich, Artikel auf "sticky" zu setzen und somit im Loop oben zu halten.</strong> In der deutschen Version nennt sich die Funktion "auf der Startseite halten" und wird im  Editor in der rechten Seitenleiste im Bereich "Status" angezeigt.<br />
Wenn ihr allerdings WordPress um Custom Post Types erweitert habt, fehlt dort die Sticky-Funktion. Es gibt verschiedene Wege, sie nachzurüsten. </p>
<p><span id="more-6668"></span></p>
<h3>Sticky Custom Post Types Plugin</h3>
<p>Die einfachste Lösung um die Sticky-Funktion auch für Custom Post Types nachzuinstallieren, ist die Verwendung des <a href="http://wordpress.org/extend/plugins/sticky-custom-post-types/" target="_blank">gleichnamigen Plugins</a>. Das Plugin hat vor allem den Vorteil, dass es einfach wieder deinstalliert werden kann, sobald das Feature in der offiziellen WordPress-Installation integriert wurde. Wann das passiert, ist allerdings nicht klar - ein Report mit wechselndem Status zu diesem Feature existiert jedoch bereits. <a href="http://core.trac.wordpress.org/ticket/12702" target="_blank" >core.trac.wordpress.org/ticket/12702</a></p>
<figure><a href="http://kulturbanause.de/wp-content/uploads/2011/11/wordpress-sticky-custom-post-types.png"><img src="http://kulturbanause.de/wp-content/uploads/2011/11/wordpress-sticky-custom-post-types.png" alt="" title="wordpress-sticky-custom-post-types" width="550" height="215" class="alignnone size-full wp-image-6677" /></a></figure>
<p>Das <a href="http://wordpress.org/extend/plugins/sticky-custom-post-types/" target="_blank" >Plugin</a> funktioniert wunderbar, kann allerdings zu Problemen führen, wenn ihr andere Plugins im Einsatz habt, die ebenfalls von Custom Post Types Gebrauch machen. Das bekannte <a href="http://www.jleuze.com/plugins/meteor-slides/" target="_blank">Meteor Slideshow-Plugin</a> hat bei mir beispielsweise plötzlich nichtmehr wie gewünscht gearbeitet. </p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/sticky-custom-post-types/" target="_blank" >Sticky Custom Post Types Plugin</a></li>
</ul>
<p>Nachdem Ihr das Plugin installiert und aktiviert habt, findet ihr die Einstellungen dazu übrigens unter "Einstellungen → Lesen". </p>
<figure><a href="http://kulturbanause.de/wp-content/uploads/2011/11/costom-post-types-sticky-plugin-settings.png"><img src="http://kulturbanause.de/wp-content/uploads/2011/11/costom-post-types-sticky-plugin-settings.png" alt="" title="costom-post-types-sticky-plugin-settings" width="550" height="219" class="alignnone size-full wp-image-6678" /></a></figure>
<h3>Benutzerdefinierte Felder verwenden</h3>
<p>Je nachdem wie ihr geplant habt die Sticky-Funktion zu verwenden, bietet es sich auch an, Benutzerdefinierte Felder einzusetzen. Ein mögliches Beispiel: Mal angenommen ihr möchtet ein Portfolio aufbauen und dort bestimmte "Top-Referenzen" immer vor allen anderen anzeigen. Zu diesem Zweck könnt ihr ein Benutzerdefiniertes Feld, im Idealfall eine Checkbox, namens "Top" anlegen und anschließend abfragen ob der Wert dieses Feldes <code>true</code> oder <code>false</code> ist.<br />
Im Template gebt ihr dann zwei <a href="http://codex.wordpress.org/Function_Reference/query_posts" target="_blank">Custom Loops</a> hintereinander aus. Der erste zeigt nur Top-Refenzen, der zweite alle Referenzen die nicht "Top" sind. Dazu könnt ihr die Benutzerdefinierten Felder im Query auslesen. </p>
<p>Das folgende Beispiel zeigt einen Query in dem der Custom Post Type "Referenzen" mit dem Benutzerdefinierten Feld "Top" und den Value "Ja" berücksichtigt wird. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$args = array(
  'post_type' =&gt; 'referenzen',
  'posts_per_page' =&gt; -1, // = alle Beiträge anzeigen
  'meta_key' =&gt; 'top',
  'meta_value' =&gt; 'Ja'
);

query_posts( $args );
while ( have_posts() ) : the_post();

// Inhalt des Loops

endwhile;
wp_reset_query();
?&gt;
</pre>
<p>Um Benutzerdefinierte Felder zu verwalten lohnt sich übrigens ein Blick auf das Plugin "More Fields".</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/more-fields/" target="_blank" >More-Fields-Plugin für WordPress</a></li>
<li><a href="http://kulturbanause.de/2011/08/wordpress-benutzerdefinierte-felder-nur-dann-ausgeben-wenn-werte-eingetragen-wurden/">Benutzerdefinierte Felder nur dann anzeigen wenn auch Werte eingetragen wurden</a></li>
</ul>
<p>Natürlich besteht auch die Möglichkeit den WordPress-Core zu "hacken" um die Funktion zu ermöglichen. Da ihr WordPress dann jedoch nicht mehr ohne Weiteres updaten könnt, halte ich diese Variante für unbrauchbar.</p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/11/wordpress-custom-post-types-um-sticky-funktion-erweitern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress-Dashboard mit dem eigenen Logo versehen</title>
		<link>http://kulturbanause.de/2011/10/wordpress-dashboard-mit-dem-eigenen-logo-versehen/</link>
		<comments>http://kulturbanause.de/2011/10/wordpress-dashboard-mit-dem-eigenen-logo-versehen/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 05:49:32 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6470</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/10/wordpress-dashboard-logo.png" class="attachment-post-thumbnail wp-post-image" alt="WordPress Dashboard-Logo austauschen" title="wordpress-dashboard-logo" /></div>Ich habe im vorausgegangenen Beitrag das Snippet zum Austausch des Login-Screen-Logos vorgestellt, nun möchte ich euch zeigen wie ihr das Logo innerhalb des WordPress-Dashboards ersetzen könnt. Diese kleine Anpassung kann ebenfalls dazu beitragen, dass sich ein Kunde in WordPress wohler fühlt und das Gesamtprojekt (noch) positiver wahrnimmt. Auch dieses Snippet ist daher fester Bestandteil meines … </p><p><a href="http://kulturbanause.de/2011/10/wordpress-dashboard-mit-dem-eigenen-logo-versehen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/10/wordpress-dashboard-logo.png" class="attachment-post-thumbnail wp-post-image" alt="WordPress Dashboard-Logo austauschen" title="wordpress-dashboard-logo" /></div><p><strong>Ich habe im vorausgegangenen Beitrag das <a href="http://kulturbanause.de/2011/10/wordpress-login-screen-individualisieren/" title="WordPress Login-Screen individualisieren">Snippet zum Austausch des Login-Screen-Logos</a> vorgestellt, nun möchte ich euch zeigen wie ihr das Logo innerhalb des WordPress-Dashboards ersetzen könnt.</strong><br />
Diese kleine Anpassung kann ebenfalls dazu beitragen, dass sich ein Kunde in WordPress wohler fühlt und das Gesamtprojekt (noch) positiver wahrnimmt. Auch dieses Snippet ist daher fester Bestandteil meines Basis-Themes das ich für alle WordPress-Projekte als technische Grundlage nutze und ständig weiterentwickle. </p>
<p><span id="more-6470"></span></p>
<h3>Logografik</h3>
<p>Das Icon im WordPress-Dashboard hat die Abmessungen 16 x 16 Pixel. Erstellt also ein eigenes Logo mit diesen Abmessungen und speichert es im Theme-Ordner <code>(../wp-content/themes/name-des-themes/img/logo-dashboard.png)</code> ab. Ihr könnt auch einen anderen Speicherort wählen, das folgende Snippet sucht jedoch im oben genannten Ordner nach der Grafik. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/10/wordpress-dashboard-logo-austauschen.png" alt="WordPress Dashboard-Logo austauschen" title="wordpress-dashboard-logo-austauschen" width="550" height="171" class="alignnone size-full wp-image-6508" /><br />
</figure>
<h3>functions.php</h3>
<p>Kopiert folgendes Snippet in die <code>functions.php</code> eures Themes und passt ggf. den Pfad zum Bild an. </p>
<pre class="brush: php; title: ; notranslate">
// replace dashboard logo
function kb_dashboard_logo() {
	echo '&lt;style type=&quot;text/css&quot;&gt;#header-logo { background-image: url('.get_bloginfo('template_directory').'/img/logo-dashboard.png) !important; }&lt;/style&gt;';
}

add_action('admin_head', 'kb_dashboard_logo');
</pre>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/10/wordpress-dashboard-mit-dem-eigenen-logo-versehen/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>WordPress Login-Screen individualisieren</title>
		<link>http://kulturbanause.de/2011/10/wordpress-login-screen-individualisieren/</link>
		<comments>http://kulturbanause.de/2011/10/wordpress-login-screen-individualisieren/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 04:47:31 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6462</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/10/wordpress-logo-login.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-logo-login" title="wordpress-logo-login" /></div>Wenn ihr WordPress für Kundenprojekte einsetzt, macht es Sinn den Administrationsbereich optisch an das bestehende Corporate Design des Kunden anzupassen. Dieser sieht nämlich in der Regel das eigene Logo lieber als das von WordPress, und eine individualisierte Installation wirkt natürlich auch technisch hochwertiger. Der erste Kontaktpunkt zwischen Anwender und WordPress-Backend ist der Login-Bereich. Mit wenigen … </p><p><a href="http://kulturbanause.de/2011/10/wordpress-login-screen-individualisieren/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/10/wordpress-logo-login.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-logo-login" title="wordpress-logo-login" /></div><p><strong>Wenn ihr WordPress für Kundenprojekte einsetzt, macht es Sinn den Administrationsbereich optisch an das bestehende Corporate Design des Kunden anzupassen. </strong> Dieser sieht nämlich in der Regel das eigene Logo lieber als das von WordPress, und eine individualisierte Installation wirkt natürlich auch technisch hochwertiger.<br />
Der erste Kontaktpunkt zwischen Anwender und WordPress-Backend ist der Login-Bereich. Mit wenigen Zeilen Code tauscht ihr hier das WordPress-Logo gegen das des Kunden aus. Ein Snippet das unbedingt in die Theme-Vorlage wandern sollte. </p>
<p><span id="more-6462"></span></p>
<h3>Logografik erstellen</h3>
<p>Das Standard-WordPress-Logo hat die Abmessungen 326 x 67 Pixel. Am einfachsten ist es daher, wenn ihr euer Logo ebenfalls im Rahmen dieser Abmessungen anlegt.<br />
Das nachfolgende Snippet sucht innerhalb des Theme-Ordners <code>(../wp-content/themes/name-des-themes/img/logo-login.png)</code> nach der Grafik. Achtet also darauf, dass ihr das Bild auch an der richtigen Stelle ablegt. </p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2011/10/wordpress-login-screen-brading.png" alt="wordpress-login-screen-brading" title="wordpress-login-screen-brading" width="550" height="419" class="alignnone size-full wp-image-6478" /></figure>
<h3>functions.php</h3>
<p>Kopiert folgenden Code in die <code>functions.php</code> des Themes. Es werden drei Elemente des Login-Screens verändert.<br />
Zunächst wird das Logo gegen die von euch erstellte Grafik ausgetauscht. Anschließend wird die Verlinkung des Logos von wordpress.com auf die Startseite eurer Website umgeschrieben <code>bloginfo('url')</code> und der Titel durch den Namen eures Blogs <code>get_option('blogname')</code> ersetzt. </p>
<pre class="brush: php; title: ; notranslate">
/* ----------------------- */
/* customized login-screen */
/* ----------------------- */

// logo
function kb_login_logo() {
  echo '&lt;style type=&quot;text/css&quot;&gt; h1 a {background-image:url('.get_bloginfo('template_directory').'/img/logo-login.png)  !important;} &lt;/style&gt;';
}

add_action('login_head',  'kb_login_logo');

// link
function kb_login_link() {
  echo bloginfo('url');
}

add_filter('login_headerurl', 'kb_login_link'); 

// link-title
function kb_login_linktitle() {
  echo get_option('blogname');
}

add_filter('login_headertitle', 'kb_login_linktitle');
</pre>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/10/wordpress-login-screen-individualisieren/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Die meist kommentierten WordPress-Beiträge der letzten 30 Tage anzeigen</title>
		<link>http://kulturbanause.de/2011/10/die-meist-kommentierten-wordpress-beitrage-der-letzten-30-tage-anzeigen/</link>
		<comments>http://kulturbanause.de/2011/10/die-meist-kommentierten-wordpress-beitrage-der-letzten-30-tage-anzeigen/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 15:44:16 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6423</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-comment.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-comment" title="wordpress-comment" /></div>Um möglichst viele Besucher auf heiß diskutierte Beiträge des Blogs aufmerksam zu machen, lohnt es sich einen Bereich mit "beliebten Artikeln" einzubinden. Mit den Custom Queries von WordPress ist es möglich Beiträge nach der Anzahl der abgegebenen Kommentare zu sortieren und in ihrer Anzahl zu begrenzen. Mit dieser Technik werden jedoch auch veraltete, aber viel … </p><p><a href="http://kulturbanause.de/2011/10/die-meist-kommentierten-wordpress-beitrage-der-letzten-30-tage-anzeigen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-comment.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-comment" title="wordpress-comment" /></div><p><strong>Um möglichst viele Besucher auf heiß diskutierte Beiträge des Blogs aufmerksam zu machen, lohnt es sich einen Bereich mit "beliebten Artikeln" einzubinden.</strong> Mit den Custom Queries von WordPress ist es möglich Beiträge nach der Anzahl der abgegebenen Kommentare zu sortieren und in ihrer Anzahl zu begrenzen. Mit dieser Technik werden jedoch auch veraltete, aber viel kommentierte Artikel berücksichtigt. Um nur aktuelle Trends abzubilden muss daher ein Zeitfenster definiert werden. </p>
<p><span id="more-6423"></span></p>
<h3>Code-Snippet</h3>
<p>Mit dem folgenden Code-Snippet ist es möglich zunächst nur die Beiträge der letzten 30 Tage auszulesen und anschließend nach der Anzahl der abgegebenen Kommentare zu sortieren. Die Anzahl der dargestellten Beiträge wird auf 5 beschränkt.<br />
Im letzten Schritt wird der WordPress-Loop gestartet und die Beiträge inkl. Beitragsbild, Titel und Verlinkung innerhalb einer ungeordneten Liste ausgegeben. </p>
<pre class="brush: php; title: ; notranslate">
&lt;ul&gt;
&lt;?php
function filter_where($where = '') {
    $where .= &quot; AND post_date &gt; '&quot; . date('Y-m-d', strtotime('-30 days')) . &quot;'&quot;; // Zeitfenster auf 30 Tage begrenzen
    return $where;
}

add_filter('posts_where', 'filter_where');

// WordPress Query
	$args = array(
		'posts_per_page' =&gt; 5,
		'order'    =&gt; 'DESC',
		'orderby' =&gt; 'comment_count'
	);
	query_posts( $args );

// WordPress-Loop
while (have_posts()): the_post(); ?&gt;

&lt;li&gt;
	&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot; title=&quot;&lt;?php the_title(); ?&gt;&quot;&gt;&lt;?php the_post_thumbnail( 'thumbnail' ); ?&gt;&lt;?php the_title (); ?&gt;&lt;/a&gt;
&lt;/li&gt;

&lt;?php endwhile;
	wp_reset_query();
?&gt;
&lt;/ul&gt;
</pre>
<p>Das Snippet ist bei mir im Einsatz und zeigt in der Sidebar die aktuellen Trends an. </p>
<p><a class="small" href="http://wpmu.org/daily-tip-display-your-most-popular-posts-in-the-last-30-days-without-a-plugin/" target="_blank">Der Code in diesem Artikel basiert auf einem Beitrag von wpmu.org</a></p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/10/die-meist-kommentierten-wordpress-beitrage-der-letzten-30-tage-anzeigen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress: Titel übergeordneter Seiten auslesen (direkter und oberster Vorfahre)</title>
		<link>http://kulturbanause.de/2011/09/wordpress-titel-ubergeordneter-seiten-auslesen-direkter-und-oberster-vorfahre/</link>
		<comments>http://kulturbanause.de/2011/09/wordpress-titel-ubergeordneter-seiten-auslesen-direkter-und-oberster-vorfahre/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 10:42:40 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6386</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-page-title.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-page-title" title="wordpress-page-title" /></div>Bei der Erstellung eines WordPress-Themes kommt es häufiger vor, dass man nur den Titel einer übergeordneten Seite anzeigen möchte. Zum Beispiel um für eine Metanavigation in der Sidebar eine Überschrift auszugeben. Besonders interessant ist in diesem Zusammenhang der Titel einer Eltern-Seite auf oberster Verschachtelungsebene. Bei einer Verschachtelungstiefe ab zwei, besteht ein Unterschied zwischen dem direkten … </p><p><a href="http://kulturbanause.de/2011/09/wordpress-titel-ubergeordneter-seiten-auslesen-direkter-und-oberster-vorfahre/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-page-title.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-page-title" title="wordpress-page-title" /></div><p><strong>Bei der Erstellung eines WordPress-Themes kommt es häufiger vor, dass man nur den Titel einer übergeordneten Seite anzeigen möchte. </strong>Zum Beispiel um für eine Metanavigation in der Sidebar eine Überschrift auszugeben.<br />
Besonders interessant ist in diesem Zusammenhang der Titel einer Eltern-Seite auf oberster Verschachtelungsebene. </p>
<p><span id="more-6386"></span></p>
<p>Bei einer Verschachtelungstiefe ab zwei, besteht ein Unterschied zwischen dem direkten Vorfahren einer Seite und dem Vorfahren auf oberster Ebene. Das folgende Beispiel zeigt eine Beispiel-Verschachtelung: </p>
<ul>
<li>Geografie
<ul>
<li style="color:black;">Städte
<ul>
<li style="color:black;">Berlin</li>
<li style="color:black;">Köln</li>
</ul>
</li>
<li style="color:black;">Flüsse
<ul>
<li style="color:black;">Spree</li>
<li style="color:black;">Rhein</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Übergeordnete Seite auf oberster Ebene ausgeben</h3>
<p>Nehmen wir nun an wir befinden uns auf der Seite "Berlin". Mit dem folgenden Snippet geben wir den Vorfahren auf oberster Ebene aus. In unsererm Beispiel also "Geografie". </p>
<p>Dieses Snippet gehört entweder global in die <code>functions.php</code> oder ebenfalls in die Template-Datei. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

function get_top_level_parent_title() {

global $post;
  if ( empty($post-&gt;post_parent) )
	{ the_title(); }
  else {
	$ancestors = get_post_ancestors($post-&gt;ID);
	end($ancestors);
	  echo get_the_title(end($ancestors));
  }
}

?&gt;
</pre>
<p>Um den Titel im Theme auszugeben verwendet ihr folgendes Snippet: </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php get_top_level_parent_title() ?&gt;
</pre>
<h3>Direkten Vorfahren ausgeben</h3>
<p>Wenn wir nun auf Basis des gleichen Beispiels den direkten Vorfahren (Städte) auslesen wollten, muss das Snippet leicht modifiziert werden. </p>
<p>Code für die <code>functions.php</code>.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

function get_ancestor_title() {

global $post;
  if ( empty($post-&gt;post_parent) )
	{ the_title(); }
  else {
	$ancestors = get_post_ancestors($post-&gt;ID);
	end($ancestors);
	  echo get_the_title($ancestors[0]);
  }
}

?&gt;
</pre>
<p>Um den Titel im Theme auszugeben verwendet ihr  folgendes Snippet: </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php get_ancestor_title() ?&gt;
</pre>
<p><a href="http://www.jonathan.vc/top-level-parent-page-wordpress.html" target="_blank">via</a></p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/09/wordpress-titel-ubergeordneter-seiten-auslesen-direkter-und-oberster-vorfahre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Untergeordnete Seiten gezielt ausgeben</title>
		<link>http://kulturbanause.de/2011/09/wordpress-untergeordnete-seiten-gezielt-ausgeben/</link>
		<comments>http://kulturbanause.de/2011/09/wordpress-untergeordnete-seiten-gezielt-ausgeben/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 09:43:03 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6399</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-page-strcture.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-page-strcture" title="wordpress-page-strcture" /></div>In einem WordPress-Themes müssen häufig untergeordnete Seiten ausgegeben werden. Ich benötige diese Funktion regelmäßig um in der Sidebar die themenverwandten Seiten zur aktuell aufgerufenen Seite aufzulisten. In Kombination mit dem Snippet für den Titel der Eltern-Seite lässt sich hier sehr schnell eine individuelle Navigation erstellen. Mit Standard-Funktionen von WordPress können alle, oder nur ausgewählte Seiten … </p><p><a href="http://kulturbanause.de/2011/09/wordpress-untergeordnete-seiten-gezielt-ausgeben/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-page-strcture.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-page-strcture" title="wordpress-page-strcture" /></div><p><strong>In einem WordPress-Themes müssen häufig untergeordnete Seiten ausgegeben werden. </strong>Ich benötige diese Funktion regelmäßig um in der Sidebar die themenverwandten Seiten zur aktuell aufgerufenen Seite aufzulisten. In Kombination mit dem <a href="http://kulturbanause.de/2011/09/wordpress-titel-ubergeordneter-seiten-auslesen-direkter-und-oberster-vorfahre/">Snippet für den Titel der Eltern-Seite</a> lässt sich hier sehr schnell eine individuelle Navigation erstellen.<br />
Mit Standard-Funktionen von WordPress können alle, oder nur ausgewählte Seiten eingeblendet werden. </p>
<p><span id="more-6399"></span></p>
<h3>Alle untergeordneten Seiten ausgeben</h3>
<p>Der folgende Code zeigt immer alle untergeordneten Seiten zur aktuell aufgerufenen Seite an. Auch Kinder von Kindern etc. </p>
<pre class="brush: php; title: ; notranslate">
&lt;ul&gt;
  &lt;?php wp_list_pages(&quot;title_li=&amp;child_of=&quot;.$post-&gt;ID); ?&gt;
&lt;/ul&gt;
</pre>
<h3>Verschachtelungstiefe begrenzen</h3>
<p>Wenn ihr die Tiefe beschränken wollt, erreicht ihr das mit dem Parameter "depth".<br />
"0" Entspricht hierbei allen Seiten. Mit "1", "2", "3" etc. legt ihr die Tiefe fest. Sollen also nur die direkten Nachkommen angezeigt werden - so benutzt folgenden Code: </p>
<pre class="brush: php; title: ; notranslate">
&lt;ul&gt;
  &lt;?php wp_list_pages(&quot;depth=1&amp;title_li=&amp;child_of=&quot;.$post-&gt;ID); ?&gt;
&lt;/ul&gt;
</pre>
<p>Bei der hier beschriebenen Technik handelt es sich um eine WordPress-Standard-Funktion. Mehr dazu findet ihr hier: <a href="http://codex.wordpress.org/Function_Reference/wp_list_pages" target="_blank">codex.wordpress.org/Function_Reference/wp_list_pages</a></p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/09/wordpress-untergeordnete-seiten-gezielt-ausgeben/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Responsive Webdesign: Media Queries auch im IE6, IE7, IE8 &#8230; nutzen</title>
		<link>http://kulturbanause.de/2011/09/responsive-webdesign-media-queries-auch-im-ie6-ie7-ie8-nutzen/</link>
		<comments>http://kulturbanause.de/2011/09/responsive-webdesign-media-queries-auch-im-ie6-ie7-ie8-nutzen/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 06:37:35 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Media Queries]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Responsive Webdesign]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6326</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/internet-explorer-media-queries.png" class="attachment-post-thumbnail wp-post-image" alt="internet-explorer-media-queries" title="internet-explorer-media-queries" /></div>Der Begriff des "Responsive Webdesign" beschreibt die Technik über CSS3 Media Queries eine Website für verschiedene Displaygrößen oder Bildschirmauflösungen zu optimieren. Wie das im Detail funktioniert habe ich bereits in einem Tutorial ausführlich erklärt. Leider unterstützt der Internet Explorer 6-8 keine Media Queries; folglich wird die optimierte Version der Website auch nicht angezeigt wenn der … </p><p><a href="http://kulturbanause.de/2011/09/responsive-webdesign-media-queries-auch-im-ie6-ie7-ie8-nutzen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/internet-explorer-media-queries.png" class="attachment-post-thumbnail wp-post-image" alt="internet-explorer-media-queries" title="internet-explorer-media-queries" /></div><p><strong>Der Begriff des "Responsive Webdesign" beschreibt die Technik über CSS3 Media Queries eine Website für verschiedene Displaygrößen oder Bildschirmauflösungen zu optimieren.</strong> <a href="http://kulturbanause.de/2011/04/websites-mit-css3-media-queries-fur-iphone-ipad-android-co-optimieren/">Wie das im Detail funktioniert habe ich bereits in einem Tutorial ausführlich erklärt.</a> Leider unterstützt der Internet Explorer 6-8 keine Media Queries; folglich wird die optimierte Version der Website auch nicht angezeigt wenn der Besucher mit einem veralteten Internet Explorer unterwegs ist.<br />
Nun könnte man einwenden, dass Media Queries in erster Linie für die Optimierung auf Smartphones genutzt werden und die Optimierung auf Desktop-Rechnern nicht so wichtig ist. Sicher ist die Optimierung für Handys und Tablets wichtiger - aber auch Desktop-Rechner und Notebooks unterscheiden sich in der Displaygröße mittlerweile deutlich und sollten bei der Konzeption entsprechend beachtet werden. Ein kleines JavaScript namens "<code>respond.js</code>" rüstet die fehlende Interpretation von Media Queries im Internet Explorer nach. </p>
<p><span id="more-6326"></span></p>
<h3>respond.js</h3>
<p>Das Script liegt in der Quellversion sowie in einer komprimierten Version auf GitHub bereit. Darüber hinaus existiert auch ein WordPress-Plugin das ich der Vollständigkeit halber auch erwähnen möchte. Ob es sinnvoll ist eine solche Funktion per Plugin nachzurüsten sollte jeder selbst entscheiden. Ich bin der Meinung die Funktion gehört direkt ins Theme. </p>
<ul>
<li><a href="https://github.com/scottjehl/Respond/blob/master/respond.src.js" target="_blank">respond.js - unkomprimierte Quelldatei</a></li>
<li><a href="https://github.com/scottjehl/Respond/blob/master/respond.min.js" target="_blank">respond.js - komprimierte Version</a></li>
<li><a href="http://wordpress.org/extend/plugins/respondjs/" target="_blank">respond.js - WordPress-Plugin</a></li>
</ul>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/09/responsive-webdesign-media-queries-auch-im-ie6-ie7-ie8-nutzen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Maximale Bildkompression: JPEGmini vs. Smush.it vs. PunyPNG</title>
		<link>http://kulturbanause.de/2011/09/maximale-bildkompression-jpegmini-vs-smush-it-vs-vs-punypng/</link>
		<comments>http://kulturbanause.de/2011/09/maximale-bildkompression-jpegmini-vs-smush-it-vs-vs-punypng/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 21:33:41 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Fireworks]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6265</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/bildkompression.png" class="attachment-post-thumbnail wp-post-image" alt="bildkompression" title="bildkompression" /></div>Geringe Dateigrößen sind nach wie vor ein wichtiger Anhaltspunkt um die Qualität einer Website zu beurteilen. Zwar wird das lokale Internet immer schneller und verkraftet auch größere Dateien, doch das mobile Web erreicht diese Übertragungsgeschwindigkeiten längst nicht. Und auch die Suchmaschinen berücksichtigen die Ladezeit einer Website und listen schnelle Seiten weiter vorne. Eine von vielen … </p><p><a href="http://kulturbanause.de/2011/09/maximale-bildkompression-jpegmini-vs-smush-it-vs-vs-punypng/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/bildkompression.png" class="attachment-post-thumbnail wp-post-image" alt="bildkompression" title="bildkompression" /></div><p><strong>Geringe Dateigrößen sind nach wie vor ein wichtiger Anhaltspunkt um die Qualität einer Website zu beurteilen.</strong> Zwar wird das lokale Internet immer schneller und verkraftet auch größere Dateien, doch das mobile Web erreicht diese Übertragungsgeschwindigkeiten längst nicht. Und auch die Suchmaschinen berücksichtigen die Ladezeit einer Website und listen schnelle Seiten weiter vorne.<br />
Eine von vielen Möglichkeit um die Ladezeit zu reduzieren, sind optimal komprimierte Grafiken. Wer jetzt glaubt, der "Für Web speichern"-Dialog von Photoshop würde ausreichen, der irrt. Photoshop erzeugt außergewöhnlich große Dateien und ist selbst innerhalb der Creative Suite nicht die erste Wahl. Fireworks komprimiert Bilder bei identischen Exporteinstellungen deutlich besser.<br />
Wer Fireworks nicht besitzt, oder wem der Umweg vom Photoshop-Layout über den Fireworks-Export zu lästig ist, kann auf Online-Tools zur Bildkompression zurückgreifen. Ich habe mir drei gängige Dienste angeschaut und möchte euch zeigen welches Tool für welches Bild am besten geeignet ist. </p>
<p><span id="more-6265"></span></p>
<h3>Wie wurde getestet?</h3>
<p>Ich habe mir für meinen Test drei prominente Dienste ausgesucht: JPEGmini, PunyPNG und Yahoo Smush.it. Bei allen Diensten habe ich mir die Standard-Funktionalität ohne Benutzeraccount angeschaut. Es ging mir in erster Linie darum, die Dateigröße der optimierten Grafik zu beurteilen. Erweitere Funktionen wie die Verwaltung von Alben, der Upload zu Online-Bilddatenbanken etc. waren für mich nebensächlich. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/09/jpgmini.jpg" alt="JPEGmini" title="jpgmini" width="550" height="491" class="alignnone size-full wp-image-6290" /><br />
</figure>
<p>Ich habe für meinen Test vier JPG-Dateien und drei PNGs erstellt und bei allen Diensten hochgeladen. Bei diesen Dateien handelt es sich um typische Grafiken die ich im Web verwende. GIF-Dateien kommen aufgrund ihrer schlechten Kompression generell nicht in Frage. </p>
<h3>Das Ergebnis: JPEGmini für JPGs, Smush.it als Allrounder</h3>
<p>Das Ergebnis hat mich ehrlich gesagt selbst überrascht. JPEGmini erzeugte bei JPG-Grafiken die mit Abstand kleinsten Dateien. Allerdings muss erwähnt werden, dass bei JPEGmini sehr geringe optische Unterschiede erkennbar sind. Diese sichtbare Kompression ist vor allem bei scharfen Kanten erkennbar - kann meiner Meinung nach allerdings vernachlässig werden.<br />
PunyPNG und Smush.it erzeugten bei der JPG-Kompression etwa gleich große Dateien. Ein großer Nachteil von PunyPNG ist jedoch die Upload-Begrenzung auf 150KB. Mit einem Pro-Account kann die erlaubte Dateigröße auf 500KB erhöht werden.</p>
<p>Bei der Kompression von PNG-Files scheidet JPEGmini aus. Hier können nur JPG-Dateien komprimiert werden. PunyPNG und Smush.it erlauben die Kompression von PNG und erzeugten erneut vergleichbare Ergebnisse. Ärgerlich ist allerdings auch hier der geringe Upload von PunyPNG. </p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th align="left" valign="top" scope="col">Ausgangsbild</th>
<th align="left" valign="top" scope="col">JPEGmini</th>
<th align="left" valign="top" scope="col">PunyPNG</th>
<th align="left" valign="top" scope="col">Smush.it</th>
</tr>
<tr>
<td align="left" valign="top">336&nbsp;KB&nbsp;(*.jpg)</td>
<td align="left" valign="top" style="background:#eeffe8">119&nbsp;KB</td>
<td align="left" valign="top" style="background:#fff0f0">Upload nur bis 150&nbsp;KB</td>
<td align="left" valign="top">324&nbsp;KB</td>
</tr>
<tr>
<td align="left" valign="top">270&nbsp;KB (*.jpg)</td>
<td align="left" valign="top" style="background:#eeffe8">57&nbsp;KB</td>
<td align="left" valign="top" style="background:#fff0f0">Upload nur bis 150&nbsp;KB</td>
<td align="left" valign="top">258&nbsp;KB</td>
</tr>
<tr>
<td align="left" valign="top">78&nbsp;KB&nbsp;(*.jpg)</td>
<td align="left" valign="top" style="background:#eeffe8">23&nbsp;KB</td>
<td align="left" valign="top">71&nbsp;KB</td>
<td align="left" valign="top">69&nbsp;KB</td>
</tr>
<tr>
<td align="left" valign="top">115&nbsp;KB&nbsp;(*.jpg)</td>
<td align="left" valign="top" style="background:#eeffe8">25&nbsp;KB</td>
<td align="left" valign="top">106&nbsp;KB</td>
<td align="left" valign="top">106&nbsp;KB</td>
</tr>
<tr>
<td align="left" valign="top">561&nbsp;KB&nbsp;(*.png)</td>
<td align="left" valign="top" style="background:#fff0f0">Upload nur von JPG-Dateien</td>
<td align="left" valign="top" style="background:#fff0f0">Upload nur bis 150&nbsp;KB</td>
<td align="left" valign="top" style="background:#eeffe8">516&nbsp;KB</td>
</tr>
<tr>
<td align="left" valign="top">147&nbsp;KB&nbsp;(*.png)</td>
<td align="left" valign="top" style="background:#fff0f0">Upload nur von JPG-Dateien</td>
<td align="left" valign="top" style="background:#eeffe8">135&nbsp;KB</td>
<td align="left" valign="top" style="background:#eeffe8">135&nbsp;KB</td>
</tr>
<tr>
<td align="left" valign="top">49&nbsp;KB&nbsp;(*.png)</td>
<td align="left" valign="top" style="background:#fff0f0">Upload nur von JPG-Dateien</td>
<td align="left" valign="top" style="background:#eeffe8">45&nbsp;KB</td>
<td align="left" valign="top" style="background:#eeffe8">45&nbsp;KB</td>
</tr>
</table>
<h3>Benutzerfreundlichkeit</h3>
<p>Neben der reinen Qualität der Ergebnisse spielt auch die Benutzerfreundlichkeit eines Dienstes eine große Rolle. </p>
<p>Bei PunyPNG und bei Smush.it können auch ohne Benutzeraccount mehrere Dateien parallel hochgeladen und komprimiert werden. PunyPNG begrenzt diese Zahl jedoch auf 15 Dateien. JPEGmini erlaubt ohne Account nur den Upload von einzelnen Dateien, was den Workflow durchaus behindert. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/09/puny-png.png" alt="PunyPNG" title="puny-png" width="550" height="305" class="alignnone size-full wp-image-6293" /><br />
</figure>
<p>Der Download der komprimierten Dateien sieht ebenfalls sehr unterschiedlich aus. Sofern nur eine Datei hochgeladen wird, stellt PunyPNG die Datei unter dem Original-Dateinamen zur Verfügung. Die Ursprungsdateien können also einfach überschrieben werden. Smush.it stellt immer ein ZIP-Dokument zur Verfügung und JPEGmini ergänzt den Dateinamen um den Suffix "_mini". Insbesondere der Suffix ist natürlich sehr unpraktisch, da die Dokumente manuell umbenannt werden müssen. </p>
<h3>Fazit</h3>
<p>Tja - welcher Dienst soll es nun sein? PunyPNG scheidet für mich ganz klar aus. Zwar war ich bisher ein großer Fan dieses Dienstes, habe aber jetzt die Grenzen kennengelernt. PunyPNG schränkt den Benutzer einfach an zu vielen Stellen ein: Maximal 15 Dateien im Upload bei maximal 150 KB Dateigröße sind zu schwach. Vor allem, da die optimierten Dateien ähnlich groß sind wie bei Smush.it.</p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2011/09/smush-it-yahoo.png" alt="Smush It Yahoo YSlow" title="smush-it-yahoo" width="550" height="269" class="alignnone size-full wp-image-6294" /><br />
<figure>
<p>Smush.it lässt sich hingegen optimal in meinen Workflow integrieren. Es können beliebige Grafikformate hochgeladen werden, es existiert keine wirkliche Begrenzung in der Upload-Größe und es ist auch möglich mehrere Dateien parallel hochzuladen. Die Ausgabe erfolgt zwar als ZIP-Archiv, innerhalb des Archivs werden allerdings die ursprünglichen Dateinamen beibehalten. Für Smush.it existiert sogar ein <a href="http://wordpress.org/extend/plugins/wp-smushit/" title="Smush.it WordPress Plugin" target="_blank">WordPress-Plugin</a> das Dokumente beim Upload in die Mediathek automatisch komprimiert. Praktischer geht es kaum noch.<br />
JPEGmini hat mich überrascht. Zwar ist das Tool nicht besonders komfortabel, die Dateigröße ist allerdings unschlagbar gering. Ich werde mit Sicherheit in Zukunft meine JPG-Layout-Grafiken mit JPEGmini manuell komprimieren. </p>
<ul>
<li><a href="http://www.jpegmini.com/" target="_blank">JPEGmini</a></li>
<li><a href="http://punypng.com/" target="_blank">PunyPNG</a></li>
<li><a href="http://www.smushit.com/ysmush.it/" target="_blank">Smush.it</a></li>
</ul>
<h3>Update: Fehlerhafte Skalierung im Responsive Webdesign</h3>
<p>Ich habe noch einen schweren Bug im mobilen Safari entdeckt. Nachdem ich die Hintergrundgrafik meiner Seite mit JPEGmini komprimiert hatte, wurde die dem <code>body</code> zugewiesene Grafik auf dem iPad falsch skaliert. Ich gehe davon aus, dass es mit dem nach der Kompression fehlenden Datei-Header und dem im Responsive Design festgelegten Skalierungsfaktor zu tun hat. Ihr solltet diesen Fehler im Hinterkopf behalten und nach einer Optimierung kontrollieren. Bei Elementen mit einer zugewiesenen Breite (wie dem Footer-<code>div</code>) trat dieses Problem nicht auf.</p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/09/fehldarstellung-ipad-kompression.jpg" alt="Responsive Webdesign - Fehldarstellung nach Bildkompression" title="fehldarstellung-ipad-kompression" width="550" height="439" class="alignnone size-full wp-image-6301" /><br />
</figure>
<p class="small">Artikelbild von <a href="http://www.iconfinder.com/icondetails/9040/128/compressed_image_svg%2Bxml_icon" target="_blank">iconfinder.com/icondetails/9040/128/compressed_image_svg%2Bxml_icon</a></p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/09/maximale-bildkompression-jpegmini-vs-smush-it-vs-vs-punypng/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordPress: Widgetized Sidebars mit Beschreibung</title>
		<link>http://kulturbanause.de/2011/09/wordpress-widgetized-sidebars-mit-beschreibung/</link>
		<comments>http://kulturbanause.de/2011/09/wordpress-widgetized-sidebars-mit-beschreibung/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 06:28:37 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6241</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-sidebar-beschreibung.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-sidebar-beschreibung" title="wordpress-sidebar-beschreibung" /></div>Um in WordPress Widgets verwalten zu können, benötigt ihr mindestens eine widgetized Sidebar. Sobald eine solche Sidebar vorhanden ist, kann der User im WordPress-Backend Widgets per Drag &#038; Drop in diesen Bereichen anordnen. Insbesondere für Kunden ist es jedoch häufig schwierig zu verstehen welche Sidebar für welche Website-Inhalte vorgesehen ist bzw. an welcher Stelle im … </p><p><a href="http://kulturbanause.de/2011/09/wordpress-widgetized-sidebars-mit-beschreibung/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-sidebar-beschreibung.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-sidebar-beschreibung" title="wordpress-sidebar-beschreibung" /></div><p><strong>Um in WordPress Widgets verwalten zu können, benötigt ihr mindestens eine widgetized Sidebar.</strong><br />
Sobald eine solche Sidebar vorhanden ist, kann der User im WordPress-Backend Widgets per Drag &#038; Drop in diesen Bereichen anordnen. Insbesondere für Kunden ist es jedoch häufig schwierig zu verstehen welche Sidebar für welche Website-Inhalte vorgesehen ist bzw. an welcher Stelle im Theme die Widgets erscheinen. Mit einer Beschreibung könnt ihr es euren Kunden etwas leichter machen. </p>
<p><span id="more-6241"></span></p>
<h3>Sidebar in der functions.php definieren</h3>
<p>Kopiert folgendes Code-Snippet in die <code>functions.php</code> um eine neue Sidebar zu definieren. Das folgende Beispiel integriert eine Sidebar mit Namen, Beschreibung und den Code-Snippets die vor- bzw. nach Widgets und Überschriften eingebunden werden. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

// widgetized sidebar
if ( function_exists('register_sidebar') )
  register_sidebar(array(
    'name' =&gt; 'Sidebar', // Name der Sidebar
    'description' =&gt; __('Hier steht die Beschreibung der Sidebar'), // Beschreibung der Sidebar
    'before_widget' =&gt; '&lt;div class=&quot;widget&quot;&gt;', // Code der vor Widgets ausgegeben wird
    'after_widget' =&gt; '&lt;/div&gt;', // Code der nach Widgets ausgegeben wird
    'before_title' =&gt; '&lt;h2&gt;', // Code der vor dem Titel ausgegeben wird
    'after_title' =&gt; '&lt;/h2&gt;', // Code der nach dem Titel ausgegeben wird
));

?&gt;
</pre>
<p>Die Beschreibung der Sidebar erscheint im Backend unter "Design → Widgets". </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-widgetized-sidebar-beschreibung.png" alt="wordpress-widgetized-sidebar-beschreibung" title="wordpress-widgetized-sidebar-beschreibung" width="550" height="143" class="alignnone size-full wp-image-6242" /><br />
</figure>
<h3>Sidebar im Theme einbinden</h3>
<p>Der Vollständigkeit halber möchte ich auch noch den Code abbilden, der benötigt wird um die Sidebar im Theme auszugeben. Achtet darauf den Namen der Sidebar <code>!dynamic_sidebar("Sidebar")</code> anzupassen. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(&quot;Sidebar&quot;) ) : ?&gt;
&lt;!-- Hier werden die Widgets ausgegeben --&gt;
&lt;?php endif; ?&gt;
</pre>
<ul>
<li><a href="http://codex.wordpress.org/Widgetizing_Themes" target="_blank">codex.wordpress.org/Widgetizing_Themes</a></li>
</ul>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/09/wordpress-widgetized-sidebars-mit-beschreibung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grundgerüst für WordPress-Widgets</title>
		<link>http://kulturbanause.de/2011/09/grundgerust-fur-wordpress-widgets/</link>
		<comments>http://kulturbanause.de/2011/09/grundgerust-fur-wordpress-widgets/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 06:52:29 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6225</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-widgets.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-widgets" title="wordpress-widgets" /></div>WordPress bietet durch Widgets die Möglichkeit Seiteninhalte intuitiv zu verändern. Insbesondere für Kunden ohne Programmierkenntnisse sind Widgets besonders gut geeignet um eine Website zu pflegen und über die gewöhnliche Artikelansicht hinaus zu verändern. Um Widgets in einer WordPress-Installation verwenden zu können, muss das Theme über eine so genannte "widgetized Sidebar" verfügen. Anschließend steht diese Sidebar … </p><p><a href="http://kulturbanause.de/2011/09/grundgerust-fur-wordpress-widgets/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-widgets.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-widgets" title="wordpress-widgets" /></div><p><strong>WordPress bietet durch Widgets die Möglichkeit Seiteninhalte intuitiv zu verändern.</strong> Insbesondere für Kunden ohne Programmierkenntnisse sind Widgets besonders gut geeignet um eine Website zu pflegen und über die gewöhnliche Artikelansicht hinaus zu verändern.<br />
Um Widgets in einer WordPress-Installation verwenden zu können, muss das Theme über eine so genannte "widgetized Sidebar" verfügen. Anschließend steht diese Sidebar im Backend zur Verfügung und kann mit Widgets bestückt werden. WordPress bietet von Haus aus diverse Standard-Widgets an. Wem das nicht reicht, der kann die <a href="http://wordpress.org/extend/plugins/tags/widget" title="WordPress Plugin Directory" target="_blank">Plugin-Directory nach weiteren Widgets durchsuchen</a>.<br />
Je nach Projekt ist es jedoch notwendig ein eigenes Widget zu erstellen. Wie das funktioniert möchte ich in diesem Beitrag anhand eines Basis-Snippets zeigen. </p>
<p><span id="more-6225"></span></p>
<h3>Code für das Beispiel-Widget</h3>
<p>Ein Widget funktioniert wie ein WordPress-Plugin und muss auch im Plugin-Verzeichnis abgelegt werden. Der nachfolgende Code erstellt ein Beispiel-Widget mit einem exemplarischen Inhalt und auf ein Minimum reduzierten Funktionen. </p>
<p>Zu Beginn werden einige Informationen über das Widget festgelegt. Diese Infos findet ihr später in der Plugin-Übersicht wieder. Anschließend folgt die Ausgabe des Widgets inkl. der <code>$before_widget</code> , <code>$after_widget</code>-Variablen die beim Anlegen der widgetized Sidebar definiert werden können. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
Plugin Name: Widget Grundgerüst
Description: Dies ist ein leeres Beispiel-Widget.
Version: 1.0
Plugin URI: http://kulturbanause.de/
Author: Jonas Hellwig
Author URI: http://kulturbanause.de/
*/

function beispiel_widget_display($args) {
extract($args);
	echo $before_widget; /* Wird im Theme definiert */
	echo &quot;&lt;p&gt;Hier steht der Inhalt des Widgets.&lt;/p&gt;&quot;;
	echo $after_widget; /* Wird im Theme definiert */
}

wp_register_sidebar_widget(
    'beispielwidget_1',        		// ID
    'Beispielwidget',          		// Name des Widgets im Backend
    'beispiel_widget_display',  	// callback
    array(                  		// Optionen
        'description' =&gt; 'Hier steht eine Beschreibung des Widgets. Dieser Text ist in der Widget-Übersicht sichtbar.'
    )
);

?&gt;
</pre>
<h3>Widget installieren und aktivieren</h3>
<p>Speichert das Widget als PHP-Dokument ab und verschiebt es in das Plugin-Verzeichnis (../wp-content/plugins) der WordPress-Installation. Anschließend steht das Widget innerhalb von WordPress als Plugin zur Aktivierung bereit. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/09/widget-plugin-activation.png" alt="widget-plugin-activation" title="widget-plugin-activation" width="550" height="128" class="alignnone size-full wp-image-6230" /><br />
</figure>
<p>Hier findet ihr nun auch die Informationen aus dem Kopf des Widget-Codes wieder. </p>
<h3>Widget im Theme einsetzen</h3>
<p>Nachdem das Widget startklar ist, steht es unter "Design → Widgets" in der Widget-Übersicht zur Verfügung. Die Beschreibung und der Titel des Widgets wurden innerhalb von <code>wp_register_sidebar_widget</code> festgelegt.</p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-widget-design.png" alt="wordpress-widget-design" title="wordpress-widget-design" width="550" height="212" class="alignnone size-full wp-image-6231" /><br />
</figure>
<p>Per Drag &#038; Drop kann es nun einer Sidebar hinzugefügt werden und ist anschließend sofort im Frontend sichtbar. Da dieses Beispiel-Widget keine Einstellungen erlaubt, wird der Inhalt ausgegeben, der innerhalb der Funktion <code>beispiel_widget_display</code> festgelegt wurde. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/09/sidebar-widget-wordpress.png" alt="sidebar-widget-wordpress" title="sidebar-widget-wordpress" width="550" height="217" class="alignnone size-full wp-image-6229" /><br />
</figure>
<ul>
<li><a href="http://codex.wordpress.org/Function_Reference/wp_register_sidebar_widget" target="_blank">codex.wordpress.org/Function_Reference/wp_register_sidebar_widget</a></li>
</ul>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/09/grundgerust-fur-wordpress-widgets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Prüfen ob eine Seite Child-Pages besitzt oder nicht</title>
		<link>http://kulturbanause.de/2011/09/wordpress-prufen-ob-eine-seite-child-pages-besitzt-oder-nicht/</link>
		<comments>http://kulturbanause.de/2011/09/wordpress-prufen-ob-eine-seite-child-pages-besitzt-oder-nicht/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 06:20:55 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6184</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-child-and-parent-page.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-child-and-parent-page" title="wordpress-child-and-parent-page" /></div>Wenn ihr überprüfen möchtet ob eine Seite untergeordnete Seiten (Child-Pages) besitzt, schaut euch folgendes Snippet einmal an. Durch diesen Code lässt sich beispielsweise eine Subnavi nur dann einblenden, wenn überhaupt Child-Elemente vorhanden sind. Wenn ihr hingegen testen wollt ob es sich bei der aktuellen Seite selbst um eine untergeordnete Seite handelt, werft einen Blick auf … </p><p><a href="http://kulturbanause.de/2011/09/wordpress-prufen-ob-eine-seite-child-pages-besitzt-oder-nicht/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/09/wordpress-child-and-parent-page.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-child-and-parent-page" title="wordpress-child-and-parent-page" /></div><p><strong>Wenn ihr überprüfen möchtet ob eine Seite untergeordnete Seiten (Child-Pages) besitzt, schaut euch folgendes Snippet einmal an.</strong> Durch diesen Code lässt sich beispielsweise eine Subnavi nur dann einblenden, wenn überhaupt Child-Elemente vorhanden sind. Wenn ihr hingegen testen wollt ob es sich bei der aktuellen Seite selbst um eine untergeordnete Seite handelt, werft einen Blick auf diesen Artikel: <a href="http://kulturbanause.de/2011/08/wordpress-prufen-ob-die-aktuelle-seite-parent-oder-child-page-ist/">Prüfen ob die aktuelle Seite Parent- oder Child-Page ist</a></p>
<p><span id="more-6184"></span></p>
<h3>Snippet für die Template-Datei</h3>
<p>Fügt den nachfolgenden Code dort ein, wo die Ausgabe im Theme erfolgen soll. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

$children = get_pages('child_of='.$post-&gt;ID);
if( count( $children ) != 0 ) { 

  echo &quot;Diese Seite besitzt Child-Pages&quot;;

}

else { 

  echo &quot;Diese Seite besitzt keine Child-Pages&quot;;

}

?&gt;
</pre>
<p>Wenn ihr innerhalb der Ausgabe HTML-Code schreiben wollt, passt das Snippet wie folgt an. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

$children = get_pages('child_of='.$post-&gt;ID);
if( count( $children ) != 0 ) { ?&gt;

  &lt;p&gt;Diese Seite besitzt Child-Pages&lt;/p&gt;

&lt;?php  }

else { ?&gt;

  &lt;p&gt;Diese Seite besitzt keine Child-Pages&lt;/p&gt;

&lt;?php  }

?&gt;
</pre>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/09/wordpress-prufen-ob-eine-seite-child-pages-besitzt-oder-nicht/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Prüfen ob die aktuelle Seite Parent- oder Child-Page ist</title>
		<link>http://kulturbanause.de/2011/08/wordpress-prufen-ob-die-aktuelle-seite-parent-oder-child-page-ist/</link>
		<comments>http://kulturbanause.de/2011/08/wordpress-prufen-ob-die-aktuelle-seite-parent-oder-child-page-ist/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 18:29:32 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6173</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-parent-or-child-page.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-parent-or-child-page" title="wordpress-parent-or-child-page" /></div>Ab und zu muss man bei der Erstellung eines WordPress-Themes prüfen ob die aktuelle Seite ein Parent- oder eine Child-Page ist. Mal angenommen ihr möchtet in der Sidebar immer alle, der aktuellen Seite untergeordneten Seiten anzeigen lassen. Zusätzlich möchtet ihr diesen Bereich so aufwändig gestalten, dass ein umschließendes Container-Element notwendig ist. Wenn nun keine Child-Pages … </p><p><a href="http://kulturbanause.de/2011/08/wordpress-prufen-ob-die-aktuelle-seite-parent-oder-child-page-ist/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-parent-or-child-page.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-parent-or-child-page" title="wordpress-parent-or-child-page" /></div><p><strong>Ab und zu muss man bei der Erstellung eines WordPress-Themes prüfen ob die aktuelle Seite ein Parent- oder eine Child-Page ist.</strong> Mal angenommen ihr möchtet in der Sidebar immer alle, der aktuellen Seite untergeordneten Seiten anzeigen lassen. Zusätzlich möchtet ihr diesen Bereich so aufwändig gestalten, dass ein umschließendes Container-Element notwendig ist. Wenn nun keine Child-Pages mehr existieren sollte natürlich auch das Container-Element verschwinden, sonst ist der Bereich leer. Genau für einen solchen Zweck habe ich seinerzeit das nachfolgende Snippet benutzt. </p>
<p><span id="more-6173"></span></p>
<h3>If-Else-Abfrage</h3>
<p>Das nachfolgende Snippet zeigt an, ob die aktuell aufgerufene Seite ein Parent-Page ist oder ob es sich um eine Child-Page handelt. Parent bedeutet in diesem Fall, dass die Seite keine übergeordnete Seite besitzt. Eine Child-Page ist es sobald eine eine übergeordnete Seite existiert. </p>
<p>Eine Seite kann sowohl Child als auch Parent sein. Dieses Snippet gibt in einem solchen Fall immer "Child" aus. Es wird keine doppelte Ausgabe erstellt.  </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
global $wp_query;
 if ( empty($wp_query-&gt;post-&gt;post_parent) )
 { ?&gt; 

 &lt;p&gt;Ich bin eine &quot;Parent-Page&quot;&lt;/p&gt;

 &lt;?php }
 else { ?&gt; 

 &lt;p&gt;Ich bin eine &quot;Child-Page&quot;&lt;/p&gt;

 &lt;?php 

} ?&gt;
</pre>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/08/wordpress-prufen-ob-die-aktuelle-seite-parent-oder-child-page-ist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Prüfen ob sich ein User in Kategorie X (Parent-Category) oder in einer untergeordneten Kategorie von X (Child-Category) befindet</title>
		<link>http://kulturbanause.de/2011/08/wordpress-prufen-ob-sich-ein-user-in-kategorie-x-parent-category-oder-in-einer-untergeordneten-kategorie-von-x-child-category-befindet/</link>
		<comments>http://kulturbanause.de/2011/08/wordpress-prufen-ob-sich-ein-user-in-kategorie-x-parent-category-oder-in-einer-untergeordneten-kategorie-von-x-child-category-befindet/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 19:10:05 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6156</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-child-and-parent-categories.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-child-and-parent-categories" title="wordpress-child-and-parent-categories" /></div>Manchmal möchten wir Inhalte in einem WordPress-Theme nur dann ausgeben, wenn sich der Besucher in einer bestimmten Kategorie bzw. in einer untergeordneten Kategorie befindet. Wenn es sich um ein Kundenprojekt handelt, kann der Kunde natürlich selbst neue Unterkategorien (Child-Categories) anlegen die wir bei der Erstellung des Themes noch nicht kennen und folglich auch nicht berücksichtigen … </p><p><a href="http://kulturbanause.de/2011/08/wordpress-prufen-ob-sich-ein-user-in-kategorie-x-parent-category-oder-in-einer-untergeordneten-kategorie-von-x-child-category-befindet/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-child-and-parent-categories.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-child-and-parent-categories" title="wordpress-child-and-parent-categories" /></div><p><strong>Manchmal möchten wir Inhalte in einem WordPress-Theme nur dann ausgeben, wenn sich der Besucher in einer bestimmten Kategorie bzw. in einer untergeordneten Kategorie befindet.</strong> Wenn es sich um ein Kundenprojekt handelt, kann der Kunde natürlich selbst neue Unterkategorien (Child-Categories) anlegen die wir bei der Erstellung des Themes noch nicht kennen und folglich auch nicht berücksichtigen können. Das Snippet muss also auf der ID, bzw. dem Namen der Hauptkategorie (Parent-Category) basieren. Gerade wenn ihr mit Custom Post Types arbeitet kann ein solcher Fall schnell auftreten. </p>
<p><span id="more-6156"></span></p>
<h3>Snippet für die functions.php/Template-File</h3>
<p>Das folgende Snippet könnt ihr global in der <code>functions.php</code> verwalten oder direkt in das gewünschte Template (z.B. <code>sidebar.php</code>) kopieren. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
function post_is_in_descendant_category( $cats, $_post = null )
{
	foreach ( (array) $cats as $cat ) {
		$descendants = get_term_children( (int) $cat, 'category');
		if ( $descendants &amp;&amp; in_category( $descendants, $_post ) )
			return true;
	}
	return false;
}
?&gt;
</pre>
<h3>Ausgabe im Theme</h3>
<p>Um den gewünschten Inhalt nun auszugeben, kopiert ihr das nachfolgende Snippet an die Stelle an der die Ausgabe erfolgen soll. Achtet darauf die IDs durch die in Eurem Theme verwendeten IDs zu ersetzen. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php if (is_category('3') || post_is_in_descendant_category( 3 )) { ?&gt;

&lt;p&gt;Dieser Text ist sichtbar, wenn die Kategorie mit der ID 3 bzw. eine untergeordnete Kategorie aufgerufen ist. &lt;/p&gt;

&lt;?php } ?&gt;
</pre>
<p class="small"><a href="http://codex.wordpress.org/Function_Reference/in_category#Testing_if_a_post_is_in_a_descendant_category" target="_blank">codex.wordpress.org/Function_Reference/in_category</a></p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/08/wordpress-prufen-ob-sich-ein-user-in-kategorie-x-parent-category-oder-in-einer-untergeordneten-kategorie-von-x-child-category-befindet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Breadcrumb-Navigation ohne Plugin</title>
		<link>http://kulturbanause.de/2011/08/wordpress-breadcrumb-navigation-ohne-plugin/</link>
		<comments>http://kulturbanause.de/2011/08/wordpress-breadcrumb-navigation-ohne-plugin/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 05:21:30 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6129</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-breadcrumb.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-breadcrumb" title="wordpress-breadcrumb" /></div>Breadcrumb-Navigationen sind in komplexen Websites ein wichtiges Navigations- und Orientierungselement. Sobald Ihr WordPress als "echtes" CMS einsetzt, werdet ihr allerdings merken, dass viele Plugins und Snippets zu sehr auf den Einsatz in Blogs ausgerichtet sind. Sobald diverse statische und hierarchisch verschachtelte Seiten und Custom Post Types im Spiel sind, stößt so manche Breadcrumb an ihre … </p><p><a href="http://kulturbanause.de/2011/08/wordpress-breadcrumb-navigation-ohne-plugin/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-breadcrumb.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-breadcrumb" title="wordpress-breadcrumb" /></div><p><strong>Breadcrumb-Navigationen sind in komplexen Websites ein wichtiges Navigations- und Orientierungselement.</strong> Sobald Ihr WordPress als "echtes" CMS einsetzt, werdet ihr allerdings merken, dass viele Plugins und Snippets zu sehr auf den Einsatz in Blogs ausgerichtet sind. Sobald diverse statische und hierarchisch verschachtelte Seiten und Custom Post Types im Spiel sind, stößt so manche Breadcrumb an ihre Grenzen.<br />
Das folgende Snippet berücksichtigt alle Anforderungen die ich bisher an eine Breadcrumb gestellt habe. Da ich meinen Blog auch selbst als Archiv nutze, lege ich den entsprechenden Code hier ab. Sicher wird das Snippet euch auch mal weiterhelfen.   </p>
<p><span id="more-6129"></span></p>
<h3>Code für die functions.php</h3>
<p>Den folgenden Code fügt Ihr in die <code>functions.php</code> eures WordPress-Themes ein. </p>
<pre class="brush: php; title: ; notranslate">

// breadcrumb
function nav_breadcrumb() {

  $delimiter = '&amp;raquo;';
  $home = 'Home';
  $before = '&lt;span class=&quot;current&quot;&gt;';
  $after = '&lt;/span&gt;'; 

  if ( !is_home() &amp;&amp; !is_front_page() || is_paged() ) {

    echo '&lt;div id=&quot;breadcrumb&quot;&gt;';

    global $post;
    $homeLink = get_bloginfo('url');
    echo '&lt;a href=&quot;' . $homeLink . '&quot;&gt;' . $home . '&lt;/a&gt; ' . $delimiter . ' ';

    if ( is_category() ) {
      global $wp_query;
      $cat_obj = $wp_query-&gt;get_queried_object();
      $thisCat = $cat_obj-&gt;term_id;
      $thisCat = get_category($thisCat);
      $parentCat = get_category($thisCat-&gt;parent);
      if ($thisCat-&gt;parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
      echo $before . single_cat_title('', false) . $after;

    } elseif ( is_day() ) {
      echo '&lt;a href=&quot;' . get_year_link(get_the_time('Y')) . '&quot;&gt;' . get_the_time('Y') . '&lt;/a&gt; ' . $delimiter . ' ';
      echo '&lt;a href=&quot;' . get_month_link(get_the_time('Y'),get_the_time('m')) . '&quot;&gt;' . get_the_time('F') . '&lt;/a&gt; ' . $delimiter . ' ';
      echo $before . get_the_time('d') . $after;

    } elseif ( is_month() ) {
      echo '&lt;a href=&quot;' . get_year_link(get_the_time('Y')) . '&quot;&gt;' . get_the_time('Y') . '&lt;/a&gt; ' . $delimiter . ' ';
      echo $before . get_the_time('F') . $after;

    } elseif ( is_year() ) {
      echo $before . get_the_time('Y') . $after;

    } elseif ( is_single() &amp;&amp; !is_attachment() ) {
      if ( get_post_type() != 'post' ) {
        $post_type = get_post_type_object(get_post_type());
        $slug = $post_type-&gt;rewrite;
        echo '&lt;a href=&quot;' . $homeLink . '/' . $slug['slug'] . '/&quot;&gt;' . $post_type-&gt;labels-&gt;singular_name . '&lt;/a&gt; ' . $delimiter . ' ';
        echo $before . get_the_title() . $after;
      } else {
        $cat = get_the_category(); $cat = $cat[0];
        echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
        echo $before . get_the_title() . $after;
      }

    } elseif ( !is_single() &amp;&amp; !is_page() &amp;&amp; get_post_type() != 'post' &amp;&amp; !is_404() ) {
      $post_type = get_post_type_object(get_post_type());
      echo $before . $post_type-&gt;labels-&gt;singular_name . $after;

    } elseif ( is_attachment() ) {
      $parent = get_post($post-&gt;post_parent);
      $cat = get_the_category($parent-&gt;ID); $cat = $cat[0];
      echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
      echo '&lt;a href=&quot;' . get_permalink($parent) . '&quot;&gt;' . $parent-&gt;post_title . '&lt;/a&gt; ' . $delimiter . ' ';
      echo $before . get_the_title() . $after;

    } elseif ( is_page() &amp;&amp; !$post-&gt;post_parent ) {
      echo $before . get_the_title() . $after;

    } elseif ( is_page() &amp;&amp; $post-&gt;post_parent ) {
      $parent_id  = $post-&gt;post_parent;
      $breadcrumbs = array();
      while ($parent_id) {
        $page = get_page($parent_id);
        $breadcrumbs[] = '&lt;a href=&quot;' . get_permalink($page-&gt;ID) . '&quot;&gt;' . get_the_title($page-&gt;ID) . '&lt;/a&gt;';
        $parent_id  = $page-&gt;post_parent;
      }
      $breadcrumbs = array_reverse($breadcrumbs);
      foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
      echo $before . get_the_title() . $after;

    } elseif ( is_search() ) {
      echo $before . 'Ergebnisse für Ihre Suche nach &quot;' . get_search_query() . '&quot;' . $after;

    } elseif ( is_tag() ) {
      echo $before . 'Beiträge mit dem Schlagwort &quot;' . single_tag_title('', false) . '&quot;' . $after;

    } elseif ( is_author() ) {
       global $author;
      $userdata = get_userdata($author);
      echo $before . 'Beiträge veröffentlicht von ' . $userdata-&gt;display_name . $after;

    } elseif ( is_404() ) {
      echo $before . 'Fehler 404' . $after;
    }

    if ( get_query_var('paged') ) {
      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
      echo __('Page') . ' ' . get_query_var('paged');
      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
    }

    echo '&lt;/div&gt;';

  }
}
</pre>
<h3>Breadcrumb im Theme aufrufen</h3>
<p>Mit diesem Snippet bindet Ihr die Breadcrumb im Theme ein. Dabei ist es irrelevant ob sich die Navi innerhalb oder außerhalb des WordPress-Loops befindet. </p>
<pre class="brush: php; title: ; notranslate">&lt;?php if (function_exists('nav_breadcrumb')) nav_breadcrumb(); ?&gt;</pre>
<p>Je nachdem, auf welcher Unterseite des Projektes Ihr euch befindet, wird nun die Breadcrumb dargestellt. Im Gegensatz zu vielen anderen Lösungen die ich kenne, arbeitet diese Breadcrumb einwandfrei mit Archiven, Seiten und Kategorien. Auch Custom Post Types werden berücksichtigt. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/08/breadcrumb.png" alt="WordPress-Breadcrumb ohne Plugin" title="breadcrumb" width="550" height="208" class="alignnone size-full wp-image-6133" /><br />
</figure>
<p>Der Code wurde ursprünglich unter <a href="http://dimox.net/wordpress-breadcrumbs-without-a-plugin/" target="_blank">dimox.net/wordpress-breadcrumbs-without-a-plugin</a> veröffentlicht. Ich habe ihn nur meinen Anforderungen entsprechend leicht abgewandelt und die Begriffe übersetzt.  </p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/08/wordpress-breadcrumb-navigation-ohne-plugin/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>WordPress: Benutzerdefinierte Felder nur dann ausgeben wenn Werte eingetragen wurden</title>
		<link>http://kulturbanause.de/2011/08/wordpress-benutzerdefinierte-felder-nur-dann-ausgeben-wenn-werte-eingetragen-wurden/</link>
		<comments>http://kulturbanause.de/2011/08/wordpress-benutzerdefinierte-felder-nur-dann-ausgeben-wenn-werte-eingetragen-wurden/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 06:31:10 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Benutzerdefinierte Felder]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=6096</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/custom-field-wordpress.png" class="attachment-post-thumbnail wp-post-image" alt="custom-field-wordpress" title="custom-field-wordpress" /></div>In WordPress besteht die Möglichkeit Beiträge durch Zusatzinformationen zu ergänzen. Das geschieht unter anderem über die so genannten Benutzerdefinierten Felder. Hierbei wird zunächst einmal ein Name (auch Schlüssel genannt) festgelegt. Diesem Namen können anschließend verschiedene Werte zugewiesen werden, die dann wiederum im Theme ausgegeben werden können. Nun kann es vorkommen, dass dieser Wert in ein … </p><p><a href="http://kulturbanause.de/2011/08/wordpress-benutzerdefinierte-felder-nur-dann-ausgeben-wenn-werte-eingetragen-wurden/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/custom-field-wordpress.png" class="attachment-post-thumbnail wp-post-image" alt="custom-field-wordpress" title="custom-field-wordpress" /></div><p><strong>In WordPress besteht die Möglichkeit Beiträge durch Zusatzinformationen zu ergänzen. Das geschieht unter anderem über die so genannten Benutzerdefinierten Felder. </strong>Hierbei wird zunächst einmal ein Name (auch Schlüssel genannt) festgelegt. Diesem Namen können anschließend verschiedene Werte zugewiesen werden, die dann wiederum im Theme ausgegeben werden können. Nun kann es vorkommen, dass dieser Wert in ein weiteres Code-Snippet - z.B. einen <code>img</code>- oder <code>a</code>-Tag eingebunden werden soll. Wird nun das Benutzerdefinierte Feld nicht ausgefüllt, so kommt es zu Fehldarstellungen auf der Seite. Wie Ihr dieses Problem umgeht und Eingabefehler verhindert, möchte ich in diesem Beitrag kurz erläutern. </p>
<p><span id="more-6096"></span></p>
<h3>Beispiel</h3>
<p>Ich erkläre die Funktion am besten einmal an einem konkreten Beispiel: Für einen Blog mit Buchrezensionen habe ich ein Benutzerdefiniertes Feld für die ISBN-Nummer angelegt. Der "Name" war in diesem Fall "ISBN" und als "Wert" konnte der Kunde die individuelle ISBN-Nummer des rezensierten Buches angeben. </p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2011/08/benutzerdefinierte-felder-wordpress.png" alt="Ansicht der Benutzerdefinierten Felder in WordPress" title="benutzerdefinierte-felder-wordpress" width="550" height="229" class="alignnone size-full wp-image-6098" /></figure>
<p>Im Theme habe ich nun den "Wert", also die eingetragene ISBN-Nummer ausgelesen und in den vorgegebenen String eines Shop-Links integriert. Somit konnte unter jeder Buchrezension ein Link zum Online-Shop integriert werden. Das Produkt wurde dann über die ISBN-Nummer eindeutig identifiziert.</p>
<p>Nun kann es aber vorkommen, dass der Kunde vergisst die ISBN-Nummer einzutragen. Oder aber der Artikel ist im Shop nicht vorhanden. In einem solchen Fall muss sichergestellt werden, dass der Button zum Online-Shop nur dann angezeigt wird, wenn innerhalb von WordPress das Benutzerdefinierte Feld auch einen Wert erhalten hat. Anderenfalls hätten wir einen toten Link. </p>
<h3>Wert des Feldes in Variable speichern und ausgeben</h3>
<p>Mit dem folgenden Code löst ihr dieses Problem. Zunächst speichert ihr den "Wert" des Benutzerdefinierten Feldes in eine beliebige Variable. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php $beliebige_variable = get_post_meta($post-&gt;ID, 'name_des_benutzerdefinierten_feldes', true); ?&gt;
</pre>
<p>Anschließend kann der Inhalt im Theme ausgegeben werden. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php echo $beliebige_variable; ?&gt;
</pre>
<h3>Abfragen ob das Feld ausgefüllt wurde</h3>
<p>Um den Wert nur dann auszugeben wenn auch etwas eingetragen wurde, prüfen wir ob der Inhalt ungleich "leer" ist. Sofern das der Fall ist wird die Ausgabe ausgeführt. Anderenfalls passiert in diesem Beispiel nichts. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php $beliebige_variable = get_post_meta($post-&gt;ID, 'name_des_benutzerdefinierten_feldes', true); ?&gt;

&lt;?php if(get_post_meta($post-&gt;ID, 'name_des_benutzerdefinierten_feldes', true) != '') : ?&gt;
  &lt;?php echo $beliebige_variable; ?&gt;
&lt;?php endif; ?&gt;
</pre>
<p>Der Code inkl. echter Werte sah in meine Fall etwa so aus: </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php $isbn = get_post_meta($post-&gt;ID, 'ISBN', true); ?&gt;

&lt;?php if(get_post_meta($post-&gt;ID, 'ISBN', true) != '') : ?&gt;
  &lt;a href=&quot;http://www.url-des-shops.com/products/&lt;?php echo $isbn; ?&gt;/details/&quot; target=&quot;_blank&quot; class=&quot;button&quot;&gt;Artikel kaufen&lt;/a&gt;
&lt;?php endif; ?&gt;
</pre>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/08/wordpress-benutzerdefinierte-felder-nur-dann-ausgeben-wenn-werte-eingetragen-wurden/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google+ Profilbild in die Google-Suchergebnisse integrieren</title>
		<link>http://kulturbanause.de/2011/08/google-profilbild-in-die-google-suchergebnisse-integrieren/</link>
		<comments>http://kulturbanause.de/2011/08/google-profilbild-in-die-google-suchergebnisse-integrieren/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 06:25:10 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google+ (Google Plus)]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Microformats]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=5977</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/jonas-hellwig-into-google-search-ranking.png" class="attachment-post-thumbnail wp-post-image" alt="jonas-hellwig-into-google-search-ranking" title="jonas-hellwig-into-google-search-ranking" /></div>Seit Google+ ins Leben gerufen wurde, integriert Google das Projekt nach und nach in alle bestehenden Dienste. Eine der neuen Integrationsmöglichkeiten ist die Verknüpfung eines Blogs (oder einer Website) sowie eines oder mehrerer Google+ Profile mit der Ergebnisliste von Google. Wenn alles richtig eingestellt wurde, erscheint in der Google-Suche das Profilbild des Autors neben dem … </p><p><a href="http://kulturbanause.de/2011/08/google-profilbild-in-die-google-suchergebnisse-integrieren/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/jonas-hellwig-into-google-search-ranking.png" class="attachment-post-thumbnail wp-post-image" alt="jonas-hellwig-into-google-search-ranking" title="jonas-hellwig-into-google-search-ranking" /></div><p><strong>Seit Google+ ins Leben gerufen wurde, integriert Google das Projekt nach und nach in alle bestehenden Dienste.</strong> Eine der neuen Integrationsmöglichkeiten ist die Verknüpfung eines Blogs (oder einer Website) sowie eines oder mehrerer Google+ Profile mit der Ergebnisliste von Google. Wenn alles richtig eingestellt wurde, erscheint in der Google-Suche das Profilbild des Autors neben dem entsprechenden Treffer in den Suchergebnissen. <a href="http://goo.gl/IdIFv" target="_blank">Das sieht dann so aus. </a></p>
<p><span id="more-5977"></span></p>
<h3>Google setzt auf Parameter zur Identifikation</h3>
<p>Das Prinzip ist im Grunde genommen sehr einfach. Zunächst müsst ihr von eurer Website oder eurem Blog einen Link auf euer Google+ Profil setzen. Dieser Link wird dann einem Parameter (<code>?rel=author</code>) angereichert um die Beziehung zwischen Website und Google+ zu übertragen. Der entsprechende Link ist dann wie folgt aufgebaut:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;a href=&quot;[profile_url]?rel=author&quot;&gt;Google+&lt;/a&gt;
</pre>
<p>Ein funktionierendes Beispiel für mein Profil sieht so aus: </p>
<pre class="brush: xml; title: ; notranslate">
&lt;a href=&quot;https://plus.google.com/106537592401126010838?rel=author&quot;&gt;Google+&lt;/a&gt;
</pre>
<p class="info"><strong>Wichtig! Der Link-Text muss unbedingt mit + beginnen oder aufhören!</strong> Ein praktisches Tool zur Erzeugung eines Links inkl. G+-Logo bietet Google natürlich auch: <a href="http://www.google.com/webmasters/profilebutton/" target="_blank">google.com/webmasters/profilebutton</a> </p>
<h3>Inhalte testen und verifizieren</h3>
<p>Sobald ihr die Verlinkung hinzugefügt und hochgeladen habt, solltet ihr einmal testen ob auch alles korrekt eingestellt wurde. Zu diesem Zweck hat Google eine entsprechendes Rich-Snippet-Testing-Tool ins Leben gerufen: </p>
<ul>
<li><a href="http://www.google.com/webmasters/tools/richsnippets" target="_blank">Rich-Snippet-Testing-Tool</a></ul>
</li>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/08/google-rich-snippet-testing-tool.jpg" alt="Rich Snippet Testing Tool von Google" title="google-rich-snippet-testing-tool" width="500" height="206" class="alignnone size-full wp-image-5981" /></p>
<figcaption>Rich Snippet Testing Tool von Google</figcaption>
</figure>
<p>Wenn das Tool keine Fehler angezeigt, müsst ihr nun eine Verlinkungen von eurem Google+ Profil zu eurer Website bzw. zu einzelnen Beiträgen setzen. Das funktioniert innerhalb von Google+ über "Profil bearbeiten → Links". Damit verifiziert ihr den Content und euer Profil gegenüber Google. </p>
<p>Achtet zudem darauf, dass euer Profilbild ein Foto eurer Person zeigt. Ansonsten wird Google die Integration womöglich verweigern. </p>
<blockquote><p>Your profile picture must be a photograph of yourself and of high quality in order to be eligible for be shown as a thumbnail in search results.</p></blockquote>
<p>Als letztes müsst ihr dieses Formular ausfüllen und somit den entsprechenden Antrag bei Google stellen:</p>
<ul>
<li><a href="https://spreadsheets.google.com/a/google.com/spreadsheet/viewform?formkey=dHdCLVRwcTlvOWFKQXhNbEgtbE10QVE6MQ&#038;ndplr=1" target="_blank">Authorship request</a></ul>
</li>
<p>Das war's auch schon. Jetzt heißt es abwarten und hoffen, dass Google die Seite in die Suchergebnisse integriert. Ich hatte bisher keinen Erfolg - was aber auch an der Wahl meines Profilbildes oder am Standort Deutschland liegen kann. Wie gewohnt wird Google die Funktion vorerst nur in den USA testen und anschließend ausweiten. Ich werde die Sache auf jeden Fall im Auge behalten. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/08/google-plus-rich-snippet-jonas-hellwig.png" alt="google-plus-rich-snippet-jonas-hellwig" title="google-plus-rich-snippet-jonas-hellwig" width="500" height="246" class="alignnone size-full wp-image-6048" /><br />
</figure>
<h3>WordPress-Theme erweitern</h3>
<p>Wenn ihr WordPress benutzt und vielleicht sogar mit mehreren Autoren an der Seite arbeitet, müsst ihr das Theme -bzw. die Benutzterprofile innerhalb des WordPress-Backends entsprechend modifizieren.<br />
Es sollte jeder Autor die Möglichkeit haben innerhalb des eigenen Profils den Link zum Google-Profil anzugeben. Dafür muss das Profil erweitert werden. Wie das funktioniert habe ich bereits in einem anderen Artikel ausführlich erklärt: </p>
<ul>
<li><a href="http://kulturbanause.de/2011/08/wordpress-benutzerprofil-um-google-facebook-twitter-und-andere-felder-erweitern/" target="_blank">WordPress-Benutzerprofil um Google+, Facebook, Twitter und andere Felder erweitern</a></li>
</ul>
<h3>Alternative Methode mit Microformaten</h3>
<p>Die oben gezeigte Variante ist die neuere Möglichkeit Google+ in die Suchergebnisse zu integrieren. Eine alternative - jedoch überholte - Methode ist die Integration des <code>rel="author"</code>-Attributs in den Link. Wenn ihr diese Struktur bereits verwendet habt, so braucht ihr euch keine Sorgen zu machen. Laut Google wird auch dieses Format nach wie vor unterstützt.<br />
Mehr Infos dazu findet ihr hier: <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=1229920" target="_blank">google.com/support/webmasters/bin/answer.py?answer=1229920</a></p>
<h3>Video</h3>
<p>Google hat auch ein ausführliches Video zu diesem Thema veröffentlicht. Besonders schnell zur Sache kommen die Herren allerdings nicht. </p>
<p><iframe width="500" height="314" src="http://www.youtube.com/embed/FgFb6Y-UJUI" frameborder="0" allowfullscreen></iframe></p>
<p>Ausführliche Informationen zu diesem Thema findet ihr auch hier: </p>
<ul>
<li><a href="http://www.google.com/support/webmasters/bin/answer.py?answer=1408986" target="_blank">google.com/support/webmasters/bin/answer.py?answer=1408986</a></li>
</ul>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/08/google-profilbild-in-die-google-suchergebnisse-integrieren/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress-Benutzerprofil um Google+, Facebook, Twitter und andere Felder erweitern</title>
		<link>http://kulturbanause.de/2011/08/wordpress-benutzerprofil-um-google-facebook-twitter-und-andere-felder-erweitern/</link>
		<comments>http://kulturbanause.de/2011/08/wordpress-benutzerprofil-um-google-facebook-twitter-und-andere-felder-erweitern/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 06:40:55 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Google+ (Google Plus)]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=5952</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-zusatzliche-felder-profil.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-zusatzliche-felder-profil" title="wordpress-zusatzliche-felder-profil" /></div>Die WordPress-Benutzerprofile bieten die Möglichkeit verschiedene Meta-Informationen zu einem Benutzer anzugeben und anschließend mittels Template-Tag im Theme darzustellen. Allerdings sind insbesondere die Angaben der Social Media/IM-Dienste völlig veraltet: Jabber, AIM und Yahoo IM brauche ich nun wirklich nicht mehr. Dafür fehlen aktuelle Eingabefelder für Google+, Facebook und Twitter. Mit ein paar Zeilen Code könnt ihr … </p><p><a href="http://kulturbanause.de/2011/08/wordpress-benutzerprofil-um-google-facebook-twitter-und-andere-felder-erweitern/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-zusatzliche-felder-profil.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-zusatzliche-felder-profil" title="wordpress-zusatzliche-felder-profil" /></div><p><strong>Die WordPress-Benutzerprofile bieten die Möglichkeit verschiedene Meta-Informationen zu einem Benutzer anzugeben und anschließend mittels Template-Tag im Theme darzustellen.</strong> Allerdings sind insbesondere die Angaben der Social Media/IM-Dienste völlig veraltet: Jabber, AIM und Yahoo IM brauche ich nun wirklich nicht mehr. Dafür fehlen aktuelle Eingabefelder für Google+, Facebook und Twitter.<br />
Mit ein paar Zeilen Code könnt ihr euer Profil um die fehlenden Angaben ergänzen und die überflüssigen Eingabefelder entfernen. </p>
<p><span id="more-5952"></span></p>
<h3>functions.php anpassen</h3>
<p>Der folgende Code muss in die <code>functions.php</code> kopiert werden. Ich habe die Bereiche entsprechend kommentiert. </p>
<pre class="brush: php; title: ; notranslate">
// Zusätzliche Felder im Benutzerprofil
function contactInfo($user_contactmethods) {

	// Google+, Facebook, Twitter hinzufügen
	$user_contactmethods['googleplus'] = 'GooglePlus';
	$user_contactmethods['facebook'] = 'Facebook';
	$user_contactmethods['twitter'] = 'Twitter';

	// Yahoo, Jabber, AOL entfernen
	unset($user_contactmethods['yim']);
	unset($user_contactmethods['jabber']);
	unset($user_contactmethods['aim']);

	return $user_contactmethods;
}

add_filter('user_contactmethods','contactInfo');
</pre>
<p>Innerhalb von WordPress sieht das Benutzerprofil dann in etwa so aus: </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/08/wordpress-zusatzliche-felder-backend.png" alt="WordPress: Zusätzliche Benutzer-Felder im Backend" title="wordpress-zusatzliche-felder-backend" width="500" height="257" class="alignnone size-full wp-image-5966" /><br />
</figure>
<h3>Werte im Theme ausgeben</h3>
<p>Um die Werte im Theme auszugeben verwendet ihr folgenden Code. Das Beispiel zeigt die allgemeine Ausgabe des Google+-Profils.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php the_author_meta('googleplus');?&gt;
</pre>
<p>Wenn ihr mit mehrere Autoren an einer Seite arbeitet kann es vorkommen, dass nicht alle Benutzer alle Profile angeben können oder wollen. Um den entsprechenden Wert nur dann auszugeben, wenn das Feld im Backend auch ausgefüllt wurde reicht folgender Code. Das Beispiel zeigt ebenfalls die Ausgabe von Google+. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php if( get_the_author_meta('googleplus') ) { ?&gt;
   &lt;a href=&quot;&lt;?php the_author_meta('googleplus');?&gt;&quot;&gt;Google+&lt;/a&gt;
&lt;?php } ?&gt;
</pre>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/08/wordpress-benutzerprofil-um-google-facebook-twitter-und-andere-felder-erweitern/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>WordPress-Dashboard: Individuelle Widgets hinzufügen / Standard-Widgets löschen</title>
		<link>http://kulturbanause.de/2011/06/wordpress-dashboard-individuelle-widgets-hinzufugen-standard-widgets-loschen/</link>
		<comments>http://kulturbanause.de/2011/06/wordpress-dashboard-individuelle-widgets-hinzufugen-standard-widgets-loschen/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 05:50:59 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=5520</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/06/wordpress-dashboard-widgets.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-dashboard-widgets" title="wordpress-dashboard-widgets" /></div>Das WordPress-Dashboard zeigt dem Benutzer eine Übersicht verschiedener, häufig verwendeter WordPress-Funktionen. Neben einer kurzen Statistik finden sich hier unter anderem die letzten Beitragsentwürfe, eingehende Links fremder Websites und die letzten Kommentare. Für Kundenprojekte ist diese Übersicht häufig nicht brauchbar: es werden zu viele unverständliche bzw. überflüssige Informationen dargestellt. Statt dessen fehlt ein individuelles Widget um … </p><p><a href="http://kulturbanause.de/2011/06/wordpress-dashboard-individuelle-widgets-hinzufugen-standard-widgets-loschen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/06/wordpress-dashboard-widgets.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-dashboard-widgets" title="wordpress-dashboard-widgets" /></div><p><strong>Das WordPress-Dashboard zeigt dem Benutzer eine Übersicht verschiedener, häufig verwendeter WordPress-Funktionen. Neben einer kurzen Statistik finden sich hier unter anderem die letzten Beitragsentwürfe, eingehende Links fremder Websites und die letzten Kommentare.</strong> Für Kundenprojekte ist diese Übersicht häufig nicht brauchbar: es werden zu viele unverständliche bzw. überflüssige Informationen dargestellt. Statt dessen fehlt ein individuelles Widget um den Kunden in der Administrationsoberfläche willkommen zu heißen. </p>
<p><span id="more-5520"></span></p>
<h3>Individuelles Widget hinzufügen</h3>
<p>Zunächst möchten wir ein individuelles Widget hinzufügen. Hier bietet es sich an, den Kunden zu begrüßen, oder ihm Hilfe bei der Benutzung von WordPress anzubieten.<br />
Kopiert folgenden Code in die <code>functions.php</code> eurer WordPress-Installation und passt die gewünschten Textstellen an. </p>
<pre class="brush: php; title: ; notranslate">
// add individual dashboard-widget
function kb_dashboard_widget() {
	echo &quot;Hier steht der Inhalt des Widgets&quot;;
} 

function kb_add_dashboard_widget() {
	wp_add_dashboard_widget('kb_dashboard_widget', 'Widget-&amp;Uumlberschrift', 'kb_dashboard_widget');
}

add_action('wp_dashboard_setup', 'kb_add_dashboard_widget' );
</pre>
<p>Als Ergebnis wird dem WordPress-Dashboard ein neues Widget mit Überschrift und Inhalt hinzugefügt. </p>
<figure><img src="http://kulturbanause.de/wp-content/uploads/2011/06/individuelle-wordpress-dashboard-widgets.png" alt="individuelle-wordpress-dashboard-widgets" title="individuelle-wordpress-dashboard-widgets" width="500" height="134" class="alignnone size-full wp-image-5524" /><br />
</figure>
<h3>Standard-Widgets entfernen</h3>
<p>Nun sollen die Standard-Widgets von WordPress ausgeblendet werden. Folgender Code muss ebenfalls in der <code>functions.php</code> eingebunden werden. Anschließend sind alle Standard-Widgets verschwunden und können auch nicht vom Benutzer wieder aktiviert werden.</p>
<pre class="brush: php; title: ; notranslate">
// remove standard dashboard-widgets
function remove_dashboard_widgets() {
  global $wp_meta_boxes;
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
} 

add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
</pre>
<p class="small">via: <a href="http://hankis.me/modifying-the-wordpress-dashboard" target="_blank">hankis.me</a>, <a href="http://wp-snippets.com/disable-dashboard-widgets/" target="_blank">wp-snippets.com</a></p>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/06/wordpress-dashboard-individuelle-widgets-hinzufugen-standard-widgets-loschen/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Text im Footer des WordPress-Backends anpassen</title>
		<link>http://kulturbanause.de/2011/06/text-im-footer-des-wordpress-backends-anpassen/</link>
		<comments>http://kulturbanause.de/2011/06/text-im-footer-des-wordpress-backends-anpassen/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 05:30:07 +0000</pubDate>
		<dc:creator>Jonas Hellwig</dc:creator>
				<category><![CDATA[Tipps, Hacks, Snippets]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kulturbanause.de/?p=5511</guid>
		<description><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/06/wordpress-backend-footer.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-backend-footer" title="wordpress-backend-footer" /></div>Im Footer der WordPress-Administrationsoberfläche, dem so genannten Dashboard, wird normalerweise folgender Standard-Text angezeigt: "Danke, dass du WordPress benutzt. &#124; WordPress Deutschland &#124; Dokumentation (en) &#124; Feedback (en)". Je nach Projekt mach es Sinn diesen Text zu entfernen, oder durch einen eigenen Text zu ersetzen. Insbesondere bei Kunden-Projekten möchte man als Webdesigner hier vielleicht eine Copyright-Information … </p><p><a href="http://kulturbanause.de/2011/06/text-im-footer-des-wordpress-backends-anpassen/" class="more-link">Diesen Beitrag zu Ende lesen</a><h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></description>
			<content:encoded><![CDATA[<div><img width="140" height="140" src="http://kulturbanause.de/wp-content/uploads/2011/06/wordpress-backend-footer.png" class="attachment-post-thumbnail wp-post-image" alt="wordpress-backend-footer" title="wordpress-backend-footer" /></div><p><strong>Im Footer der WordPress-Administrationsoberfläche, dem so genannten Dashboard, wird normalerweise folgender Standard-Text angezeigt: "<em>Danke, dass du WordPress benutzt. | WordPress Deutschland | Dokumentation (en) | Feedback (en)</em>". </strong><br />
Je nach Projekt mach es Sinn diesen Text zu entfernen, oder durch einen eigenen Text zu ersetzen. Insbesondere bei Kunden-Projekten möchte man als Webdesigner hier vielleicht eine Copyright-Information oder eine Verlinkung zur eigenen Hilfe-Seite integrieren. Ein paar Zeilen in der <code>functions.php</code> reichen dafür aus. </p>
<p><span id="more-5511"></span></p>
<h3>functions.php anpassen</h3>
<p>Öffnet die <code>function.php</code>, fügt folgenden PHP-Code ein und passt den Text entsprechend euren Vorstellungen an. </p>
<pre class="brush: php; title: ; notranslate">
// change backend-footer
function kb_backend_footer () {
    echo &quot;Webdesign- und Entwicklung: &lt;a href='http://kulturbanause.de' target='_blank'&gt;kulturbanause.de&lt;/a&gt;&quot;;
} 

add_filter('admin_footer_text', 'kb_backend_footer');
</pre>
<p>Die Änderungen wirken sich folgendermaßen auf die Darstellung im WordPress-Dashboard aus. </p>
<figure>
<img src="http://kulturbanause.de/wp-content/uploads/2011/06/wordpress-backend-footer-anpassen1.png" alt="wordpress-backend-footer-anpassen" title="wordpress-backend-footer-anpassen" width="500" height="252" class="alignnone size-full wp-image-5517" /><br />
</figure>
<h3>Jetzt bist Du gefragt</h3><p>Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.</p>]]></content:encoded>
			<wfw:commentRss>http://kulturbanause.de/2011/06/text-im-footer-des-wordpress-backends-anpassen/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

