<?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>You can say you to me &#187; Wordpress</title>
	<atom:link href="http://www.zartgesotten.de/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zartgesotten.de</link>
	<description>Sanity is out to get you!</description>
	<lastBuildDate>Tue, 25 Oct 2011 13:26:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>TinyMCE &#8220;stylesheets&#8221;-Dropdown nach eigenem Wunsch anpassen</title>
		<link>http://www.zartgesotten.de/tinymce-stylesheets-dropdown-nach-eigenem-wunsch-anpassen/</link>
		<comments>http://www.zartgesotten.de/tinymce-stylesheets-dropdown-nach-eigenem-wunsch-anpassen/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 08:10:45 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/?p=996</guid>
		<description><![CDATA[F&#252;r viele Kundenprojekte w&#252;rde ich gerne dem Kunden ganz klar definierte Layout-M&#246;glichkeiten bieten. Und NUR diese. Ich entferne in der Regel mittels Plugin &#8220;TinyMCE Advanced&#8221; alle nicht im Design vorgesehenen Formatierungsbuttons (wie &#8220;durchgestrichen&#8221;, &#8220;geordnete Liste&#8221; etc.) und m&#246;chte dann dem (&#8230;)<p><a href="http://www.zartgesotten.de/tinymce-stylesheets-dropdown-nach-eigenem-wunsch-anpassen/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>F&#252;r viele Kundenprojekte w&#252;rde ich gerne dem Kunden ganz klar definierte Layout-M&#246;glichkeiten bieten. Und NUR diese. Ich entferne in der Regel mittels Plugin &#8220;TinyMCE Advanced&#8221; alle nicht im Design vorgesehenen Formatierungsbuttons (wie &#8220;durchgestrichen&#8221;, &#8220;geordnete Liste&#8221; etc.) und m&#246;chte dann dem Kunden mittels &#8220;Stylesheets&#8221;-Dropdown die M&#246;glichkeit geben ganz bestimmte Styles einfach anwenden zu k&#246;nnen.</p>
<p>Das klappt seit einer Weile ja schon gut mittels editor-style.css, was aber daran noch st&#246;rt ist, dass in der Styles-Liste &#8220;ungewollte&#8221; styles auftauchen, die ich dem Kunden eben nicht anbieten m&#246;chte.</p>
<p><a title="Beschreibung" href="http://alisothegeek.com/2011/05/tinymce-styles-dropdown-wordpress-visual-editor/" target="_blank">Eine umfassende Beschreibung, um volle Kontrolle &#252;ber die Styles zu erhalten</a> habe ich bei einer Web-Kollegin <a title="Alisothegeek" href="http://alisothegeek.com/2011/05/tinymce-styles-dropdown-wordpress-visual-editor/" target="_blank">alisothegeek.com</a> gefunden. Damit erh&#228;lt man die volle Kontrolle.</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/tinymce-stylesheets-dropdown-nach-eigenem-wunsch-anpassen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Post Types und Taxonomien</title>
		<link>http://www.zartgesotten.de/custom-post-types-und-taxonomien/</link>
		<comments>http://www.zartgesotten.de/custom-post-types-und-taxonomien/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 12:53:44 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/?p=983</guid>
		<description><![CDATA[Manchmal mag es recht n&#252;tzlich sein, einen Custom Post Type anzulegen, der dann auch noch verschiedene Eigenschaften hat. Das geht recht komfortabel &#252;ber ein Plugin namens Custom Post Type UI , das sowohl das Anlegen des Custom Post Types als (&#8230;)<p><a href="http://www.zartgesotten.de/custom-post-types-und-taxonomien/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Manchmal mag es recht n&#252;tzlich sein, einen Custom Post Type anzulegen, der dann auch noch verschiedene Eigenschaften hat.</p>
<p>Das geht recht komfortabel &#252;ber ein Plugin namens Custom Post Type UI , das sowohl das Anlegen des Custom Post Types als auch der dazu geh&#246;rigen Taxonomien einfach macht. Wenn man aber sicher gehen m&#246;chte, dass auch ohne den Einsatz eines Plugins der Custom Post Type vorhanden ist, kann man den auch durch einen Eintrag in der functions.php seines Themes erstellen.</p>
<p><pre class="brush:php">function post_type_distributors() {
	register_post_type(
                'distributoren',
                array(
                    'label' =&gt; __('Distributoren'),
                    'public' =&gt; true,
                    'show_ui' =&gt; true,
                    'supports' =&gt; array(
					'title',
					'editor'
                     )
                )
        );

       register_taxonomy( 'regionen', 'distributoren',
		array(
             'hierarchical' =&gt; true,
			 'label' =&gt; __('Regionen'),
			 'query_var' =&gt; 'regionen',
			 'rewrite' =&gt; array('slug' =&gt; 'regionen' )
		)
	);

	register_taxonomy( 'branchen', 'distributoren',
		array(
             'hierarchical' =&gt; true,
			 'label' =&gt; __('Branchen'),
			 'query_var' =&gt; 'branchen',
			 'rewrite' =&gt; array('slug' =&gt; 'branchen' )
		)
	);

}
add_action('init', 'post_type_distributors');
</pre>
</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/custom-post-types-und-taxonomien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 Level WordPress Menu</title>
		<link>http://www.zartgesotten.de/3-level-wordpress-menu/</link>
		<comments>http://www.zartgesotten.de/3-level-wordpress-menu/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 07:48:52 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/?p=975</guid>
		<description><![CDATA[Sicherlich k&#246;nnte ein ge&#252;bter Programmierer hier eine elegantere L&#246;sung finden aber f&#252;r meine Zwecke tut dieser Code genau, was er soll. Ausgangsvoraussetzung: Ich habe eine WordPress-Seite mit drei Men&#252;leveln. Diese Grafik zeigt, welche F&#228;lle es gibt und wie die Men&#252;s (&#8230;)<p><a href="http://www.zartgesotten.de/3-level-wordpress-menu/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Sicherlich k&#246;nnte ein ge&#252;bter Programmierer hier eine elegantere L&#246;sung finden aber f&#252;r meine Zwecke tut dieser Code genau, was er soll.</p>
<p><strong>Ausgangsvoraussetzung: </strong>Ich habe eine WordPress-Seite mit drei Men&#252;leveln.</p>
<p><img class="alignnone size-full wp-image-977" title="menuestruktur" src="http://www.zartgesotten.de/wp-content/files/2011/07/menuestruktur.gif" alt="" width="150" height="179" /></p>
<p>Diese Grafik zeigt, welche F&#228;lle es gibt und wie die Men&#252;s sich verhalten sollen. In meinem Fall sollten die Men&#252;s syntaktisch voneinander getrennt sein, also jedes Men&#252;level in einem eigenen &#8220;Code-Block&#8221;, der sich dann per CSS individuell stylen l&#228;sst.</p>
<p><a href="http://www.zartgesotten.de/wp-content/files/2011/07/wordpress-menuefaelle.png" rel="lightbox[975]" rel="lightbox[975]" title="Men&#252;f&#228;lle"><img class="alignnone size-thumbnail wp-image-976" title="Men&#252;f&#228;lle" src="http://www.zartgesotten.de/wp-content/files/2011/07/wordpress-menuefaelle-150x150.png" alt="" width="150" height="150" /></a></p>
<p>CODE:</p>
<p>Nun zum Interessanten! Ein Teil des Codes muss nun in die Theme-Datei an die Stelle, an der das Men&#252; auftauchen soll. Das k&#246;nnte z.B. die header.php sein oder auch die sidebar.php.</p>
<p><pre class="brush:php">&lt;?php
	//Automatic Submenu
    global $wp_query;
 	//Wenn die Seite ein Grandparent ist, also keine Eltern hat...
    if( empty($wp_query-&gt;post-&gt;post_parent) )
      {
     		//Herausfinden ob es Kinder gibt...
			$ich=$wp_query-&gt;post-&gt;ID;
			$children = wp_list_pages("title_li=&amp;child_of=$ich&amp;echo=0");
				if ($children)
				{
					$parent1 = $wp_query-&gt;post-&gt;ID;
					//Menue ausgeben
					echo "&lt;ul class='submenus'&gt;";
					wp_list_pages("title_li=&amp;child_of=$parent1&amp;depth=1");
					echo "&lt;/ul&gt;";
				}
     } 

    else
	//hat Eltern, ist also ein parent
     {
		$ich=$wp_query-&gt;post-&gt;ID;
		$children = wp_list_pages("title_li=&amp;child_of=$ich&amp;echo=0");
		//UND hat weitere Kinder
		if ($children)
		{
			$parent1 = $wp_query-&gt;post-&gt;post_parent;
			//MENUE 1 mit Geschwistern aktueller Seite (Kinder von $parent1)
			echo "&lt;ul class='submenus'&gt;";
			wp_list_pages("title_li=&amp;child_of=$parent1&amp;depth=1");
			echo "&lt;/ul&gt;";

			$parent2 = $wp_query-&gt;post-&gt;ID;
			//Menue 2 mit Kindern aktueller Seite ($parent2)
			echo "&lt;ul class='subsubmenu'&gt;";
			wp_list_pages("title_li=&amp;child_of=$parent2&amp;depth=1");
			echo "&lt;/ul&gt;";

		}
		else
		{
				if(get_grandpapa())
				{
					$parent1 = get_grandpapa();
					//MENUE 1 mit Geschwistern aktueller Seite (Kinder von $parent1)
					echo "&lt;ul class='submenus'&gt;";
					wp_list_pages("title_li=&amp;child_of=$parent1&amp;depth=1");
					echo "&lt;/ul&gt;";

					$parent2 = $wp_query-&gt;post-&gt;post_parent;
					//Menue 2 mit Kindern aktueller Seite ($parent2)
					echo "&lt;ul class='subsubmenu'&gt;";
					wp_list_pages("title_li=&amp;child_of=$parent2&amp;depth=1");
					echo "&lt;/ul&gt;";
				}
				else
				{
					$parent1 = $wp_query-&gt;post-&gt;post_parent;
					//NUR Menue 1 mit Geschwistern aktueller Seite (Kinder von $parent1)
					echo "&lt;ul class='submenus'&gt;";
					wp_list_pages("title_li=&amp;child_of=$parent1&amp;depth=1");
					echo "&lt;/ul&gt;";
				}
		}
	}

	?&gt;</pre>
<p>Zus&#228;tzlich habe ich noch einen Schnipsel Code, den ich bei<a title="Stackexchange WordPress" href="http://wordpress.stackexchange.com/questions/11665/find-out-if-a-page-is-a-grandchild" target="_blank"> Stackxchange</a> gefunden habe in die functions.php eingebaut.</p>
<p><pre class="brush:php">//Three levels of hell... get ID of grandparent page
function get_grandpapa($page_id){
    $current_page = get_page( $page_id );
    if ($current_page-&gt;post_parent &gt; 0){
        //has at least a parent
        $parent_page = get_page($current_page-&gt;post_parent);
        if ($parent_page-&gt;post_parent &gt; 0){
            return $parent_page-&gt;post_parent;
        }else{
            return false;
        }
    }
    return false;
}</pre>
</p>
<p>Dieser Schnipsel findet die ID der Gro&#223;vaterseite heraus. So kann diese als Startpunkt f&#252;r die Darstellung des Men&#252;s verwendet werden.</p>
<p>Das war der ganze Zauber. So l&#228;sst sich WordPress als CMS nutzen.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/3-level-wordpress-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Private Seiten im Men&#252; anzeigen</title>
		<link>http://www.zartgesotten.de/private-seiten-im-menue-anzeigen/</link>
		<comments>http://www.zartgesotten.de/private-seiten-im-menue-anzeigen/#comments</comments>
		<pubDate>Sun, 29 May 2011 12:47:25 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/?p=957</guid>
		<description><![CDATA[Problem: Der Standard-Aufruf von Seitenmen&#252;s in WordPress listet keine privaten Seiten. Die m&#246;chte ich aber gerne anzeigen lassen. Z. B bei Einrichtung eines privaten Benutzerbereiches. Das Problem l&#228;sst sich z.B. mit einer &#196;nderung der Core-Dateien regeln in der die Abfrage (&#8230;)<p><a href="http://www.zartgesotten.de/private-seiten-im-menue-anzeigen/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Problem:</p>
<p>Der Standard-Aufruf von Seitenmen&#252;s in WordPress listet keine privaten Seiten. Die m&#246;chte ich aber gerne anzeigen lassen. Z. B bei Einrichtung eines privaten Benutzerbereiches.</p>
<p>Das Problem l&#228;sst sich z.B. mit einer &#196;nderung der Core-Dateien regeln in der die Abfrage ge&#228;ndert wird. DAS will ich aber auf keinen Fall. Eine andere L&#246;sung, die ich in einem Forum gefunden habe war eine Abfrage auf das Recht des Benutzers, private Seiten zu lesen und dann das manuelle Einf&#252;gen von Links. Auch das m&#246;chte ich nicht. Es soll doch bittsch&#246;n auch komfortabel sein.</p>
<p>Diese Abfrage auf das Benutzerrecht hat mich aber auf eine Idee gebracht. Und hier ist meine L&#246;sung:</p>
<p>1. In der Functions.php einen neuen Men&#252;bereich anlegen</p>
<pre class="brush:php">function my_custom_menus() {
   register_nav_menus(
    array(
      'private-menu' =&gt; __( 'Private Seiten' )
	)
    );
}</pre>
<p>2. Ein neues Men&#252; mit den gew&#252;nschten Seiten erstellen</p>
<p>3. den folgenden Code in die Theme-Datei packen:</p>
<pre class="brush:php">&lt;?php // add private menu to your navigation menu
if(current_user_can('read_private_pages')) {
    wp_nav_menu( array( 'theme_location' =&gt; 'private-menu'));
 } ?&gt;
</pre>
<p>Damit werden nach Anmeldung eines berechtigten Benutzers die Privaten Seiten angezeigt.</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/private-seiten-im-menue-anzeigen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Posts aus einer Kategorie auf einer Seite listen</title>
		<link>http://www.zartgesotten.de/posts-aus-einer-kategorie-auf-einer-seite-listen/</link>
		<comments>http://www.zartgesotten.de/posts-aus-einer-kategorie-auf-einer-seite-listen/#comments</comments>
		<pubDate>Sat, 28 May 2011 17:29:38 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/?p=952</guid>
		<description><![CDATA[Dieses Problem stellt sich mir immer und immer wieder. Ich m&#246;chte eine Seite namens &#8220;NEWS&#8221; haben, die sich nahtlos in mein WordPress CMS einf&#252;gt. Auf dieser Seite sollen nun meine News-Posts angezeigt werden. Du Dummi, werden jetzt einige WordPress-Freaks sagen. (&#8230;)<p><a href="http://www.zartgesotten.de/posts-aus-einer-kategorie-auf-einer-seite-listen/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Dieses Problem stellt sich mir immer und immer wieder. Ich m&#246;chte eine Seite namens &#8220;NEWS&#8221; haben, die sich nahtlos in mein WordPress CMS einf&#252;gt. Auf dieser Seite sollen nun meine News-Posts angezeigt werden.</p>
<p>Du Dummi, werden jetzt einige WordPress-Freaks sagen. Du kannst doch einfach die Kategorie anzeigen lassen. Seit den neuen Custom Men&#252;s in WordPress kann man ja nun auch Kategorien einfach in das Men&#252; einf&#252;gen und anzeigen lassen. Nat&#252;rlich geht das. Es gibt auch einige Plugins, die ich schon probiert habe. Einen kleinen Beitrag dazu habe ich hier geschrieben <a title="Query Posts" href="http://www.zartgesotten.de/artikel-aus-beliebigen-kategorien-an-beliebiger-stelle-auf-einer-seite-anzeigen/"http://www.zartgesotten.de>Query Posts und Shortcode Any Widget </a>benutzen um Posts auf einer Seite anzuzeigen. (&lt;&#8211; das funktioniert) oder auch das <a title="Pages Posts Plugin" href="http://redyellow.co.uk/plugins/pages-posts/" target="_blank">Pages Posts Plugin </a>sowie <a title="List Category Posts" href="http://wordpress.org/extend/plugins/list-category-posts/">List Category Posts Plugin </a>.</p>
<p>Ich habe zumindest einige davon ausprobiert und immer wieder das gleiche Problem gehabt (au&#223;er bei Query Posts und Shortcode Any): Es wurde zwar alles fein angezeigt, aber mein Menu-Highlighting ist zum Teufel gegangen. Ebenso haben eventuell eingerichtete Custom Sidebars nicht mehr funktioniert&#8230; Also &#8230; ein eigenes Template muss her. Eins, das die Seite als Seite bel&#228;sst (also auch all ihre Eigenschaften) und trotzdem eine Liste der Posts anzeigt.</p>
<pre class="brush:php">&lt;?php if (have_posts()) : ?&gt;
    &lt;?php while (have_posts()) : the_post(); ?&gt;

        &lt;div class="entry"&gt;
          &lt;?php the_content(); ?&gt;
	&lt;/div&gt;&lt;!--entry--&gt;

      &lt;p class="postmetadata"&gt;&lt;?php edit_post_link('bearbeiten'); ?&gt;&lt;/p&gt;
   &lt;?php endwhile; ?&gt;

 &lt;?php
 //NEWS-Posts anzeigen
	$displayposts = new WP_Query();
	 //get posts from your news category
	 $displayposts-&gt;query('cat=1&amp;showposts=3');
	while ($displayposts-&gt;have_posts()) : $displayposts-&gt;the_post();?&gt;

         &lt;div class="aktuell-beitrag"&gt;
		&lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt; &lt;?php edit_post_link('E', '', ''); ?&gt;	&lt;br /&gt;
		&lt;div class="post-date"&gt;&lt;?php the_time('d.m.Y') ?&gt;&lt;/div&gt;

                &lt;?php  the_excerpt(); ?&gt;
	&lt;/div&gt;

	&lt;?php endwhile; ?&gt;

  &lt;?php else : ?&gt;
    &lt;h2 class="center"&gt;Nicht gefunden&lt;/h2&gt;
	&lt;div class="entry"&gt;
    &lt;p class="center"&gt;Diese Seite wurde leider nicht gefunden. Bitte verwenden Sie die Navigation.&lt;/p&gt;
	&lt;/div&gt;
  &lt;?php endif; ?&gt;</pre>
<p>Das Ganze muss nat&#252;rlich in ein Page-Template und dann bei der gew&#252;nschten Seite ausgew&#228;hlt werden.</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/posts-aus-einer-kategorie-auf-einer-seite-listen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Custom Post Types und individuelle Templates</title>
		<link>http://www.zartgesotten.de/wordpress-custom-post-types-und-individuelle-templates/</link>
		<comments>http://www.zartgesotten.de/wordpress-custom-post-types-und-individuelle-templates/#comments</comments>
		<pubDate>Tue, 24 May 2011 06:34:56 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/wordpress-custom-post-types-und-individuelle-templates/</guid>
		<description><![CDATA[Seit der Version 2.9. gibt es ja bei WordPress die wunderbaren Custom Post Types. Diese verwende ich z.B. f&#252;r Referenzen. Dazu kann man den Custom Post Type noch um individuelle Felder erweitern. Z.B. mit Plugins wie Easy Post Type oder (&#8230;)<p><a href="http://www.zartgesotten.de/wordpress-custom-post-types-und-individuelle-templates/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Seit der Version 2.9. gibt es ja bei WordPress die wunderbaren Custom Post Types. Diese verwende ich z.B. f&#252;r Referenzen. Dazu kann man den Custom Post Type noch um individuelle Felder erweitern. Z.B. mit Plugins wie Easy Post Type oder More Fields. In meinem Fall w&#252;rde ich die Referenzen gerne auf eine bestimmte Art und Weise anzeigen lassen und dazu eine ganz individuelle Formatierung verwenden.</p>
<p>Dazu habe ich bei <a href="http://www.wptavern.com/forum/general-wordpress/1132-custom-post-types-custom-post-templates.html" target="_blank">WPTavern</a> den passenden Code-Schnipsel gefunden.</p>
<p><code></code></p>
<pre class="brush:php">function post_type_add_template() {
$post_type = get_query_var('post_type');
if (!empty($post_type)) {
locate_template(array("{$post_type}.php","index.php"), true);
  exit;
}
}
add_action('template_redirect', 'post_type_add_template'); </pre>
<p>Dieser Code muss in die functions.php eingef&#252;gt werden und sucht dann nach einer Theme-Datei, die denselben Namen hat wie der jeweilige Custom Post Type. Wenn ich also wie in meinem Fall den Type “Referenzen” habe, muss ich nur eine Theme-Datei mit Namen “referenzen.php” einf&#252;gen und schon ist der K&#228;s gegessen.</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/wordpress-custom-post-types-und-individuelle-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Text innerhalb von WordPress Posts oder Seiten ersetzen</title>
		<link>http://www.zartgesotten.de/text-innerhalb-von-wordpress-posts-oder-seiten-ersetzen/</link>
		<comments>http://www.zartgesotten.de/text-innerhalb-von-wordpress-posts-oder-seiten-ersetzen/#comments</comments>
		<pubDate>Wed, 11 May 2011 08:45:18 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/text-innerhalb-von-wordpress-posts-oder-seiten-ersetzen/</guid>
		<description><![CDATA[Heute habe ich mal wieder aus einer Notwendigkeit heraus einen Code-Schnipsel gefunden, der mir sicherlich auch in Zukunft noch gute Dienste leisten wird. Um einen beliebigen Text mit “Suchen und Ersetzen” – Funktionalit&#228;t in allen WordPress-Seiten und –Posts zu ersetzen (&#8230;)<p><a href="http://www.zartgesotten.de/text-innerhalb-von-wordpress-posts-oder-seiten-ersetzen/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich mal wieder aus einer Notwendigkeit heraus einen Code-Schnipsel gefunden, der mir sicherlich auch in Zukunft noch gute Dienste leisten wird.</p>
<p>Um einen beliebigen Text mit “Suchen und Ersetzen” – Funktionalit&#228;t in allen WordPress-Seiten und –Posts zu ersetzen kann im PHPMyAdmin in das SQL-Befehlsfenster folgender Code verwendet werden:</p>
<p><pre class="brush:sql">UPDATE wp_posts SET post_content = REPLACE (post_content, 'ALTER TEXT', 'NEUER TEXT')</pre>
<p>Damit werden ALLE Vorkommnisse von “ALTER TEXT” durch “NEUER TEXT” ersetzt.</p>
<p>Zu beachten ist hier nat&#252;rlich das Prefix. Wenn in der wp_config.php ein anderer Tabellenprefix festgelegt wurde, muss nat&#252;rlich wp_posts durch meinprefix_posts ersetzt werden.</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/text-innerhalb-von-wordpress-posts-oder-seiten-ersetzen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Erweiterte Benutzerinfos in WordPress &#8211; in CForms automatisch verwenden</title>
		<link>http://www.zartgesotten.de/erweiterte-benutzerinfos-in-wordpress-in-cforms-automatisch-verwenden/</link>
		<comments>http://www.zartgesotten.de/erweiterte-benutzerinfos-in-wordpress-in-cforms-automatisch-verwenden/#comments</comments>
		<pubDate>Fri, 06 May 2011 09:45:47 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/erweiterte-benutzerinfos-in-wordpress-in-cforms-automatisch-verwenden/</guid>
		<description><![CDATA[Wieder mal eine Herausforderung. Lage: Es gibt ein “Kontaktformular” mit DEM Kontaktformular &#8211; Plugin CForms, durch das Benutzer/Kunden auf der Seite eine Bestellung abgeben k&#246;nnen. Dieser Vorgang wiederholt sich teilweise w&#246;chentlich. Um Fehler zu verhindern und dem Kunden die Sache (&#8230;)<p><a href="http://www.zartgesotten.de/erweiterte-benutzerinfos-in-wordpress-in-cforms-automatisch-verwenden/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Wieder mal eine Herausforderung.</p>
<p>Lage: Es gibt ein “Kontaktformular” mit DEM Kontaktformular &#8211; Plugin <a href="http://www.deliciousdays.com/cforms-plugin/" target="_blank">CForms</a>, durch das Benutzer/Kunden auf der Seite eine Bestellung abgeben k&#246;nnen. Dieser Vorgang wiederholt sich teilweise w&#246;chentlich. Um Fehler zu verhindern und dem Kunden die Sache einfacher zu machen wollte ich versuchen, wichtige Informationen direkt aus den Benutzerinformationen des angemeldeten Benutzers herauszulesen (Wir gehen hier davon aus, dass jeder Kunde ein WordPress Benutzerkonto ben&#246;tigt, um Bestellungen abzugeben).</p>
<p>F&#252;r die wichtigsten Standardinformationen hat CForms schon vorgesorgt. Es gibt Variablen, die die Standard-Benutzerinformationen des angemeldeten Benutzers auslesen. Diese k&#246;nnen dann bei der Erstellung des Formulars verwendet werden. Zum Beispiel als Default-Wert:</p>
<p><a href="http://www.zartgesotten.de/wp-content/files/2011/05/cformsvariable.jpg" rel="lightbox[935]" rel="lightbox[935]" title="cforms-variable"><img style="display: inline; border: 0px;" title="cforms-variable" src="http://www.zartgesotten.de/wp-content/files/2011/05/cformsvariable_thumb.jpg" border="0" alt="cforms-variable" width="644" height="271" /></a></p>
<p>In dem mir vorliegenden Fall wollte ich aber noch einen Schritt weiter gehen und ein paar Zusatzfelder haben, in die ich weitere benutzerspezifische Informationen eingeben kann und die sp&#228;ter AUCH im Formular automatisch ausgef&#252;llt werden sollten. In diesem Fall die Felder “Firmenname” und “Ansprechpartner”.</p>
<p><strong>Daraus ergeben sich zwei “Aufgaben”.</strong></p>
<p>1. m&#252;ssen die zus&#228;tzlichen Felder beim Anlegen eines neuen Benutzers in der Maske auftauchen, damit ich die Werte f&#252;r “Firmenname” und “Ansprechpartner” &#252;berhaupt eintragen kann.</p>
<p>2. muss CForms informiert werden, dass es diese neuen Informationen gibt und es muss jeweils eine im Formular verwendbare Variable angelegt werden ( {Firmenname} und {Ansprechpartner} )</p>
<p>Um den <strong>ersten Schritt</strong> zu bew&#228;ltigen gab es nach einiger Recherche f&#252;r mich zwei M&#246;glichkeiten. Entweder kann ich die zus&#228;tzlichen Felder durch eine Anpassung der functions.php erreichen (hat den Vorteil, dass die Felder damit an mein Theme gebunden sind und bei einem Umzug auf ein anderes System automatisch gleich wieder mit dabei sind. Mehr Informationen zu dieser Methode gibt es bei <a href="http://justintadlock.com/archives/2009/09/10/adding-and-using-custom-user-profile-fields" target="_blank">Justin Tadlock</a>. Seine Anleitung ist einfach zu verstehen und funktioniert hervorragend.</p>
<p>Die zweite M&#246;glichkeit ist der Einsatz eines Plugins. Auch hier habe ich mehrere versucht und bin letztlich sehr zufrieden mit der Leistung von <a href="http://wordpress.org/extend/plugins/register-plus-redux/screenshots/" target="_blank">Register Plus Redux</a>. Das Plugin bietet mir neben dem Einf&#252;gen zus&#228;tzlicher Felder auch noch weitere n&#252;tzliche Anpassungsm&#246;glichkeiten.</p>
<p>Ich habe mich der Einfachheit halber f&#252;r die zweite Variante entschieden.</p>
<p>Erster Schritt ist nat&#252;rlich die Installation des Plugins Register Plus Redux. Nach der Aktivierung des Plugins findet man unter “Einstellungen” die Optionen. Hier gibt es auch einen Block “Weitere Felder”. Dort k&#246;nnen beliebige neue Felder f&#252;r die Profilseite angelegt werden.</p>
<p>Damit ist unser erster Schritt schon abgefr&#252;hst&#252;ckt. Im Profil sieht das dann so aus:</p>
<p><a href="http://www.zartgesotten.de/wp-content/files/2011/05/felderprofil.png" rel="lightbox[935]" rel="lightbox[935]" title="So sehen die neuen Felder im Profil aus."><img style="display: inline; border: 0px;" title="So sehen die neuen Felder im Profil aus." src="http://www.zartgesotten.de/wp-content/files/2011/05/felderprofil_thumb.png" border="0" alt="So sehen die neuen Felder im Profil aus." width="590" height="145" /></a></p>
<p>Der <strong>zweite Schritt</strong> ist leider mit einem Eingriff in die Core-Dateien des Plugins CForms verbunden. Sollte dies jemand lesen, der eine bessere Idee hat bin ich nat&#252;rlich sehr dankbar f&#252;r Hinweise. Bis dahin mache ich es eben so: Die Datei &#8216;plugins/cforms/lib_aux.php wird im Bereich von Zeile 860 (bei mir&#8230; keine Garantie) durch folgende zwei Code-Zeilen erg&#228;nzt:</p>
<p><br class="spacer_" /></p>
<pre class="brush:php">$m     = str_replace( '{Firmenname}',        $CurrUser-&gt;firmenname, $m );
$m     = str_replace( '{Ansprechpartner}',        $CurrUser-&gt;ansprechpartner, $m );</pre>
<p><br class="spacer_" /></p>
<p>Damit haben wir CForms mitgeteilt, dass die beiden Variablen {Firmenname} und {Ansprechpartner} mit den Werten aus den eben erstellten Feldern bef&#252;llt werden sollen.</p>
<p>Damit sind wir fertig und k&#246;nnen nun im Cforms Formular die zwei neuen Variablen verwenden.</p>
<p><a href="http://www.zartgesotten.de/wp-content/files/2011/05/cformsneuevariablen.png" rel="lightbox[935]" rel="lightbox[935]" title="cforms-neue-variablen"><img style="display: inline; border: 0px;" title="cforms-neue-variablen" src="http://www.zartgesotten.de/wp-content/files/2011/05/cformsneuevariablen_thumb.png" border="0" alt="cforms-neue-variablen" width="491" height="84" /></a></p>
<p>Und wenn die Informationen im Profil angegeben sind, sieht das Formular f&#252;r den angemeldeten Benutzer dann so aus:</p>
<p><a href="http://www.zartgesotten.de/wp-content/files/2011/05/cformsfrontfelder.png" rel="lightbox[935]" rel="lightbox[935]" title="cforms-front-felder"><img style="display: inline; border: 0px;" title="cforms-front-felder" src="http://www.zartgesotten.de/wp-content/files/2011/05/cformsfrontfelder_thumb.png" border="0" alt="cforms-front-felder" width="538" height="311" /></a></p>
<p>Diese Anleitung dient in der Hauptsache meiner eigenen Dokumentation. Sollte sie f&#252;r Dich hilfreich sein, freue ich mich nat&#252;rlich!</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/erweiterte-benutzerinfos-in-wordpress-in-cforms-automatisch-verwenden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Individueller User-Bereich f&#252;r Kunden</title>
		<link>http://www.zartgesotten.de/individueller-user-bereich-fuer-kunden/</link>
		<comments>http://www.zartgesotten.de/individueller-user-bereich-fuer-kunden/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 13:20:51 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/individueller-user-bereich-fr-kunden/</guid>
		<description><![CDATA[Heute hatte ich mal wieder einen Grund, mich in die Eingeweide von WordPress zu w&#252;hlen. Die Aufgabenstellung war folgende: Der Besitzer der WordPress-Seite sollte in der Lage sein, Benutzer anzulegen (seine Kunden), denen dann, nachdem Sie sich am WordPress angemeldet (&#8230;)<p><a href="http://www.zartgesotten.de/individueller-user-bereich-fuer-kunden/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Heute hatte ich mal wieder einen Grund, mich in die Eingeweide von WordPress zu w&#252;hlen. Die Aufgabenstellung war folgende:</p>
<p>Der Besitzer der WordPress-Seite sollte in der Lage sein, Benutzer anzulegen (seine Kunden), denen dann, nachdem Sie sich am WordPress angemeldet haben eine f&#252;r sie ganz individuelle Seite angezeigt wird, auf der ihnen der Admin ganz auf sie zugeschnittene Inhalte pr&#228;sentieren kann. Hilfreich w&#228;re eine solche Funktion z.B. f&#252;r Designer, die ihren Kunden einen aktuellen Fortschritt ihrer Arbeit pr&#228;sentieren wollen oder Fotografen, die jedem Kunden nur SEINE Hochzeitsfotos zum Ansehen geben m&#246;chten.</p>
<p>Also habe ich mich erst einmal auf dem “Markt” umgetan um herauszufinden, ob es so etwas schon gibt (am Besten nat&#252;rlich als Plugin). Diese Suche verlief ergebnislos. Alle Plugins, die sich mit Member-Areas o.&#196;. befassen arbeiten mit Rollen. Das hei&#223;t, sie geben ALLEN Benutzern einer bestimmten Rolle die Rechte auf bestimmte Seiten. In meinem Fall soll aber ein anderer Benutzer nicht auf die Seite des Kunden zugreifen k&#246;nnen, selbst wenn er irgendwie in den Besitz der direkten URL zur Seite des anderen Benutzers k&#228;me.</p>
<p>In den WordPress-Foren gibt es schon einige Artikel, die sich eben mit diesem Wunsch/Problem auseinander setzen. Dort erhielt ich erste Anregungen, wie man das Problem angehen k&#246;nnte. Z.B. in diesem <a href="http://wordpress.org/support/topic/my-crack-at-a-client-login-sectioncustomer-portal" target="_blank">sehr ausf&#252;hrlichen Beitrag</a> von JTWilcox.</p>
<p><strong>Sein Ansatz in der Zusammenfassung.</strong></p>
<ul>
<li>Es wird eine Seite mit dem Namen des Kunden angelegt (muss gleich sein) </li>
<li>Die Seite wird versteckt (auf “Privat” geschaltet) </li>
<li>Es wird ein Seiten-Template angelegt, das den Namen des Benutzers mit dem Namen der aktuellen Seite vergleicht und den Zugriff nur erlaubt, wenn sie &#252;bereinstimmen. </li>
<li>Der Benutzer wird nach Login direkt auf “seine” Seite umgeleitet (<a href="http://wordpress.org/extend/plugins/peters-login-redirect/" target="_blank">Peter&#8217;s Login Redirect</a>) </li>
</ul>
<p>Das ist schon nicht schlecht. Was mich allerdings noch etwas st&#246;rte war die Verpflichtung, beim Erstellen der Seiten genau auf den Namen der Seite achten zu m&#252;ssen, damit sie genau dem Benutzernamen des Kunden gleicht. Das Fehlerpotential hier erschien mir zu hoch.</p>
<p>Was ich aber durchaus &#252;bernehmen wollte war die Idee, ein spezielles Seiten-Template zu haben (f&#252;r die Kunden-Seiten), das dann abfragt, ob der aktuelle Benutzer auch berechtigt ist, diese Seite zu sehen.</p>
<p>Um die Kontrolle &#252;ber den berechtigten Benutzer zu erhalten habe ich mir vorgestellt, dass ich gerne irgendwo in den Meta-Informationen einer Seite per Drop-Down definieren w&#252;rde, welcher der im Blog angelegten Benutzer (neben dem Admin) alleinigen Zugriff auf diese Seite haben d&#252;rfte. Es musste also eine Meta-Box her, in der dieses Drop-Down zu finden ist.</p>
<p>Auch dazu habe ich mir eine Anleitung gefunden, die mir geholfen hat, diese Aufgabe zu bew&#228;ltigen. <a href="http://www.farinspace.com/how-to-create-custom-wordpress-meta-box/" target="_blank">&#8220;How to create a custom WordPress Meta Box&#8221;</a> Hier habe ich mir den Code aus dem Tutorial kopiert und leicht f&#252;r meinen Zweck angepasst (Namen ge&#228;ndert). In die Datei, die den Inhalt der neuen Meta-Box darstellt habe ich eine User-Liste von WordPress ausgelesen und als Dropdown ausgeben lassen. (wieder mit Hilfe eines <a href="http://www.mattvarone.com/wordpress/list-users/" target="_blank">Tutorials</a>).</p>
<p>Hier muss ein Ordner mit zwei Dateien ins Theme-Verzeichnis kopiert werden und die functions.php modifiziert werden. Leider wei&#223; ich (noch) nicht, wie man das Ganze in ein komfortableres Plugin zusammenfassen kann, Es ist bei meiner L&#246;sung noch ein wenig Handarbeit n&#246;tig (Sollte jemand Zeit und Lust haben, aus diesem Ansatz ein Plugin zu machen… gerne!!)</p>
<p>Nun musste im Seiten-Template (nach JTWilcox) die Abfrage leicht ge&#228;ndert werden, damit nun nicht mehr Seitenname mit Benutzernamen verglichen wurde, sondern Benutzername (des angemeldeten Benutzers) mit berechtigtem Benutzer (aus dem Drop-Down in den Seiteneigenschaften).</p>
<p>Zuletzt habe ich das Plugin “<a href="http://wordpress.org/extend/plugins/peters-login-redirect/" target="_blank">Peters Login Redirect</a>” installiert um den neuen Benutzer direkt auf “seine” Seite zu leiten, nachdem er sich angemeldet hat.</p>
<p>Die L&#246;sung, wie ich sie aktuell verwende stelle ich hier zum Download bereit (Template ist passend f&#252;r “Twentyten”).</p>
<p><strong>Anleitung:</strong></p>
<p><a href="../wp-content/files/2011/04/user-access.zip" target="_blank">Zip-Datei mit allen n&#246;tigen Dateien</a> herunterladen. Sie enth&#228;lt einen Ordner namens “user-access”. Diesen kompletten Ordner musst Du in das Verzeichnis Deines Themes kopieren. Dann musst Du Dich nochmal speziell um Functions.php und page-template-client.php k&#252;mmern. (s. Anleitung)</p>
<p><strong>Dateibeschreibungen – Installationsanleitung</strong></p>
<p>functions.php &#8211; Der code aus dieser Datei muss in die Datei functions.php Deines aktuellen Themes kopiert werden. Wenn Du keine functions.php hast, kopiere einfach diese in Dein Theme-Verzeichnis.</p>
<blockquote><p>page-template-client.php &#8211; Das ist das Seiten-Template f&#252;r Deine Client-Seiten. Wenn Du das Twentyten Theme verwendest kannst Du die Datei einfach in Dein Theme-Verzeichnis kopieren. Wenn Du ein anderes Theme verwendest, musst Du sie entsprechend anpassen</p>
<p>user-access.php – In dieser Datei befindet sich das, was in der META-Box unter dem Editor-Fenster aufgerufen wird. Also unser Dropdown mit den im System angelegten Benutzern. Falls Du mal den Text &#228;ndern willst.</p>
<p>user-access.css – Die CSS-Datei dazu. Die habe ich selber gar nicht anger&#252;hrt. Sie stammt original aus dem Tutorial.</p>
<p><strong>NOCH EIN SCHRITT</strong></p>
<p>Plugin “Peter’s Login Redirect” installieren.</p>
</blockquote>
<p><strong>Bedienungsanleitung:</strong></p>
<p>Wenn Du alle Dateien wie vorgegeben untergebracht hast, gehst Du wie folgt vor, um eine Kundenseite einzurichten:</p>
<p>1. Lege einen Benutzer f&#252;r Deinen Kunden an (Rolle “Subscriber” bzw. Abonnent reicht)</p>
<p>2. Lege ihm eine Kundenseite an. Am Besten als Unterseite einer “Kunden”-Seite, damit nicht alles durcheinander wird</p>
<p>3. Ver&#228;ndere den Status auf “Privat”</p>
<p>4. W&#228;hle das Seitentemplate “Clients” aus</p>
<p>5. W&#228;hle den zugriffsberechtigten Benutzer aus dem Dropdown aus. – Seite speichern!</p>
<p>6. Kopiere die URL der soeben angelegten Seite</p>
<p>7. Unter “Einstellungen” – Login Redirects kannst Du f&#252;r den Kunden ein Redirect zu “seiner” Seite anlegen. W&#228;hle hier den Benutzer aus und f&#252;ge die eben kopierte URL ein. Speichern, FERTIG.</p>
<p>Sooo… das war erstmal eine flotte, wahrscheinlich v&#246;llig unverst&#228;ndliche Zusammenfassung F&#220;R MICH, damit ich das Ganze in meinem stetig fortschreitenden Alter nicht vergesse. Ich hoffe, ich werde bald mal Zeit haben, die Sache zu &#252;berarbeiten und richtig pr&#228;sentabel zu machen. Vielleicht hilft’s ja jemandem.</p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/individueller-user-bereich-fuer-kunden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Field Matrix</title>
		<link>http://www.zartgesotten.de/custom-field-matrix/</link>
		<comments>http://www.zartgesotten.de/custom-field-matrix/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 09:36:57 +0000</pubDate>
		<dc:creator>zartgesotten</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://www.zartgesotten.de/custom-field-matrix/</guid>
		<description><![CDATA[Ich habe zwar noch keine Ahnung, wo und wie ich dieses gerade neu entdeckte Plugin verwenden werde, aber ICH WERDE es verwenden. Das ist eine weitere aufregende Erweiterung von WordPress um tolle Funktionen Custom Field Matrix Wunderbar!]]></description>
			<content:encoded><![CDATA[<p>Ich habe zwar noch keine Ahnung, wo und wie ich dieses gerade neu entdeckte Plugin verwenden werde, aber ICH WERDE es verwenden. Das ist eine weitere aufregende Erweiterung von WordPress um tolle Funktionen</p>
<p><a href="http://www.elliotcondon.com/wordpress/custom-field-matrix-making-a-wordpress-photo-gallery/" target="_blank">Custom Field Matrix</a></p>
<p>Wunderbar! </p>
<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zartgesotten.de/custom-field-matrix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

