<?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>Schweizer WordPress Magazin &#187; PHP</title>
	<atom:link href="http://wp-magazin.ch/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://wp-magazin.ch</link>
	<description>WordPress verstehen und anwenden</description>
	<lastBuildDate>Thu, 02 Sep 2010 07:00:30 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>How-To: Post Thumbnail Format abwechseln</title>
		<link>http://wp-magazin.ch/2010/05/17/post-thumbnail-format-abwechseln/</link>
		<comments>http://wp-magazin.ch/2010/05/17/post-thumbnail-format-abwechseln/#comments</comments>
		<pubDate>Mon, 17 May 2010 13:29:18 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Nützliches]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[Thumbnails]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=3215</guid>
		<description><![CDATA[Die in WordPress 2.9 eingeführte Post Thumbnail Funktion ist für die meisten WordPress-Anwender noch relativ neu und deshalb findet man kaum gute Beispiele und Tutorials im Web. Heute möchten wir mit unseren Lesern ein nützliches Code Snippet teilen, mit welchem man bei jedem Beitrag manuell das Thumbnail Format festlegen kann.]]></description>
			<content:encoded><![CDATA[<div id="attachment_3225" class="wp-caption alignright" style="width: 160px"><a href="http://wp-magazin.ch/wp-content/uploads/post-thumbnail-format-abwechseln.png"><img class="size-thumbnail wp-image-3225    " title="Abwechselndes Post Thumbnail Format" src="http://wp-magazin.ch/wp-content/uploads/post-thumbnail-format-abwechseln-150x150.png" alt="Abwechselndes Post Thumbnail Format" width="150" height="150" /></a><p class="wp-caption-text">Post Thumbnails</p></div>
<p><strong>Die in WordPress 2.9 eingeführte Post Thumbnail Funktion ist für die meisten WordPress-Anwender noch relativ neu und deshalb findet man kaum gute Beispiele und Tutorials im Web. Heute möchten wir mit unseren Lesern ein nützliches Code Snippet teilen, mit welchem man bei jedem Beitrag manuell das Thumbnail Format festlegen kann.</strong></p>
<p>Um die Post Thumbnails überhaupt erst nutzen zu können, müsst ihr in der functions.php eures Themes folgende Zeile hinzufügen: <code>&lt;?php add_theme_support( 'post-thumbnails' ); ?&gt;</code>.</p>
<p>Danach könnt ihr eure jeweiligen Bildgrössen definieren. Uns reichen für das Beispiel eine rechteckige und eine quadratische Form.</p>
<pre><code>&lt;?php
add_image_size( 'wpm_rectangular_thumbnail', 250, 75 ); // Rechteckiges Format
add_image_size( 'wpm_square_thumbnail', 75, 75 ); // Quadratisches Format
?&gt;
</code></pre>
<div id="attachment_3226" class="wp-caption alignleft" style="width: 160px"><a href="http://wp-magazin.ch/wp-content/uploads/post-thumbnail-selector-meta-box.png"><img class="size-thumbnail wp-image-3226" title="Post Thumbnail Meta Box" src="http://wp-magazin.ch/wp-content/uploads/post-thumbnail-selector-meta-box-150x150.png" alt="Post Thumbnail Meta Box" width="150" height="150" /></a><p class="wp-caption-text">Post Thumbnail Meta Box</p></div>
<p>Um dann die Post Thumbnails anzuzeigen, kann man dann innerhalb der Loop entweder <code>&lt;?php the_post_thumbnail('wpm_rectangular_thumbnail'); ?&gt;</code> oder<code> &lt;?php the_post_thumbnail 'wpm_square_thumbnail'); ?&gt;</code> verwenden.</p>
<h3>Thumbnail Format auswählen</h3>
<p>Da wir nicht genauer ins Detail gehen wollen, verweisen wir lieber auf die sehr ausführliche <a title="Mark Jaquith - New in WordPress 2.9: Post Thumbnail Images" href="http://markjaquith.wordpress.com/2009/12/23/new-in-wordpress-2-9-post-thumbnail-images/">Anleitung von Mark Jaquith</a>. Wir möchten euch ja zeigen, wie man die Bildgrössen <strong>manuell abwechseln</strong> kann. Dazu werden wir eine neue Meta-Box im Beitrags-Editor hinzufügen, wo man das gewünschte Format auswählen kann. Im Hintergrund werden diese Daten in einem versteckten Custom Field gespeichert.<br />
Ihr müsst bloss folgenden Code in der <code>functions.php</code> eures Themes hinzufügen, evtl. müsst ihr auch die PHP-Tags am Anfang und am Ende entfernen.</p>
<pre><code>&lt;?php
/*
 * Fügt eine Meta Box im Beitrags-Editor hinzu,
 * mit der man wählen kann, ob das Thumbnail quadratisch oder rechteckig erscheinen soll.
 *
 * Autor: Schweizer WordPress Magazin
 *
 */

/* Hier haken wir uns in die admin_menu Action ein, um die Meta Box hinzuzufügen */
add_action('admin_menu', 'wpm_add_custom_box');

/* Hier haken wir uns in die save_post Action ein, um die eingegebenen Daten zu verarbeitena */
add_action('save_post', 'wpm_save_postdata');

/* Fügt die Meta Box im Beitrags-Editor hinzu */
function wpm_add_custom_box() {
	add_meta_box(
		'wpm_sectionid',
		__( 'Miniaturbild Format', 'wpm_textdomain' ),
		'wpm_inner_custom_box',
		'post',
		'advanced'
	);
}

/* Schreibt den Inhalt in die Meta Box */
function wpm_inner_custom_box() {

	// Nonce für die Verfikation benutzen

	echo '&lt;input type="hidden" name="wpm_noncename" id="wpm_noncename" value="' .
    	wp_create_nonce( plugin_basename(__FILE__) ) . '" /&gt;';

	// Überprüfen, ob das Custom Field bereits existiert.

	$thumb = get_post_meta($post-&gt;ID, 'wpm_thumb_format', true);
	$square = "";
	$small = "";
	if(isset($thumb)) {
		if($thumb = 'wpm_square_thumbnail') {
			$square = 'checked="checked" ';
		}
		if($thumb = 'wpm_rectangular_thumbnail') {
	  		$small = 'checked="checked" ';
		}
	} else {
	  $small = 'checked="checked" ';
	}

	// Formular-Felder inklusive Beschreibung hinzufügen

	echo '&lt;p&gt;' . __("Soll das Thumbnail quadratisch oder rechteckig sein?", 'wpm_textdomain' ) . '&lt;/p&gt;';
	echo '&lt;p&gt;&lt;input type="radio" name="wpm_thumb" value="wpm_square_thumbnail"
	id="wpm_square_thumbnail" size="25" ' . $square . '/&gt;';
	echo '&lt;label for="wpm_square_thumbnail"&gt;quadratisch&lt;/label&gt;';
	echo '&lt;input type="radio" name="wpm_thumb" value="wpm_rectangular_thumbnail"
	id="wpm_rectangular_thumbnail" size="25" ' . $small . '/&gt;';
	echo '&lt;label for="wpm_rectangular_thumbnail"&gt;rechteckig&lt;/label&gt;&lt;/p&gt;';
}

// Wenn der Beitrag gespeichert wird, wird auch das Thumbnail Format gespeichert
function wpm_save_postdata( $post_id ) {

	// Sicherstellen, dass die Daten wirklich von unserem Beitrag stammen

	if ( !wp_verify_nonce( $_POST['wpm_noncename'], plugin_basename(__FILE__) )) {
		return $post_id;
	}

	// Überprüfen, ob dies eine automatische Sicherung des Beitrags ist.
	// Wenn ja, dann tun wir hier nichts.
	if ( defined('DOING_AUTOSAVE') &amp;&amp; DOING_AUTOSAVE )
		return $post_id;

	// Berechtigung des Nutzers überprüfen
	if ( 'page' == $_POST['post_type'] ) {
		if ( !current_user_can( 'edit_page', $post_id ) ) return $post_id;
	} else {
		if ( !current_user_can( 'edit_post', $post_id ) ) return $post_id;
	}

	// Wir sind authentifiziert: Jetzt können wir die Daten speichern

	$mydata = $_POST['wpm_thumb'];
	$thumb = get_post_meta($post-&gt;ID, '_wpm_thumb_format', true);
	if(isset($thumb)) {
		update_post_meta($post_id, '_wpm_thumb_format', $mydata);
	} else {
		add_post_meta($post_id, '_wpm_thumb_format', $mydata, true);
	}
}
?&gt;</code></pre>
<p>Das ist allerdings erst die halbe Miete, denn jetzt kommt noch die Ausgabe im Frontend. Dazu müsst ihr die Theme-Datei öffnen, welche für die Darstellung auf der Startseite zuständig ist (meist <code>home.php</code>). Dort fügt ihr dann an passender Stelle innerhalb des Loops folgende Zeilen ein:</p>
<pre><code>&lt;?php if ( function_exists('has_post_thumbnail') &amp;&amp; has_post_thumbnail() ) {
	$thumb = get_post_meta($post-&gt;ID, "_wpm_thumb_format, true); ?&gt;
	&lt;div class="thumbnail"&gt;
		&lt;a href="&lt;?php the_permalink(); ?&gt;" title="&lt;?php the_title(); ?&gt;"&gt;
			&lt;?php if($thumb == "wpm_square_thumbnail") {
				the_post_thumbnail('wpm_square_thumbnail');
			} else {
				the_post_thumbnail('wpm_rectangular_thumbnail');
			} ?&gt;
		&lt;/a&gt;
	&lt;/div&gt;
&lt;?php }	?&gt;</code></pre>
<p>An dieser Stelle sei angemerkt, dass dieser Code vielleicht nicht zu 100% funktioniert, denn er wurde in nur wenigen Minuten geschrieben und war auch für persönliche Zwecke gedacht. Ihr könnt den Code zudem <a title="Schweizer WordPress Magazin - Post Thumbnail Selector Plugin" href="http://wp-magazin.ch/wp-content/uploads/post-thumbnail-selector.txt">herunterladen</a> und als Plugin installieren. Die Theme-Anpassung ist allerdings weiterhin erforderlich.</p>
<p>Wir freuen uns auf eure Anregungen, Fragen und Verbesserungsvorschläge!</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2010/05/17/post-thumbnail-format-abwechseln/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BackPress &#8211; Die PHP Bibliothek hinter WordPress &amp; Co.</title>
		<link>http://wp-magazin.ch/2010/05/06/backpress-die-php-bibliothek-hinter-wordpress-co/</link>
		<comments>http://wp-magazin.ch/2010/05/06/backpress-die-php-bibliothek-hinter-wordpress-co/#comments</comments>
		<pubDate>Thu, 06 May 2010 06:05:03 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[BackPress]]></category>
		<category><![CDATA[bbPress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=3157</guid>
		<description><![CDATA[Um das Zusammenspiel zwischen WordPress, bbPress und weiteren Produkten von Automattic zu vereinfachen, hat man versucht, die Kern-Funktionalität von WordPress in eine separate Code Bibliothek zu verlagern. Diese Library ist unter dem Namen BackPress bekannt und seit längerer Zeit in der Version 1.0.2 verfügbar.]]></description>
			<content:encoded><![CDATA[<p><strong>Um das Zusammenspiel zwischen WordPress, bbPress und weiteren Produkten von Automattic zu vereinfachen, hat man versucht, die Kern-Funktionalität von WordPress in eine separate Code Bibliothek zu verlagern. Diese Library ist unter dem Namen BackPress bekannt und seit längerer Zeit in der Version 1.0.2 verfügbar.</strong></p>
<p>Im Folgenden möchten wir euch <a title="BackPress" href="http://backpress.org/">BackPress</a> kurz vorstellen und die Bibliothek ein wenig unter die Lupe nehmen.</p>
<h3>Was kann BackPress?</h3>
<div id="attachment_3188" class="wp-caption alignright" style="width: 310px"><a href="http://wp-magazin.ch/wp-content/uploads/backpress-trac.jpg"><img class="size-medium wp-image-3188" title="BackPress" src="http://wp-magazin.ch/wp-content/uploads/backpress-trac-300x202.jpg" alt="BackPress" width="300" height="202" /></a><p class="wp-caption-text">BackPress</p></div>
<p>Zwar ist BackPress kein «<em>WordPress Lite</em>», aber wer die Bibliothek genauer anschaut, erkennt Gemeinsamkeiten in der Code-Schreibweise oder der Namensgebung diverser Funktionen. Diese trifft man, wie bereits in der Einleitung erwähnt, auch in bbPress (und GlotPress) an. Dadurch soll es z.B. auch einfacher sein, ein bbPress Plugin auf WordPress zu portieren.</p>
<p>BackPress besitzt ein umfassendes Benutzermanagement mit verschiedenen Benutzerrollen, bietet eine XML-RPC sowie eine Plugin-Schnittstelle und viele weitere <a title="BackPress - Features" href="http://backpress.org/features/">Features</a>.</p>
<p>Bei der Bibliothek hapert es leider ein wenig an der Dokumentation, weshalb es bestimmt nichts für Einsteiger ist, sondern eher für Entwickler, die eigene und vor allem grössere Web-Projekte umsetzen möchten. Die wichtigsten Informationen findet man bei <a title="BackPress - Dokumentation" href="http://backpress.org/documentation/">BackPress.org</a> und der BackPress<a title="BackPress - Mailing List" href="http://lists.wordpress.org/mailman/listinfo/backpress-dev"> Mailing List</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2010/05/06/backpress-die-php-bibliothek-hinter-wordpress-co/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kommentar-Template verändern ab WordPress 2.7</title>
		<link>http://wp-magazin.ch/2009/05/07/kommentar-template-veraendern-ab-wordpress-27/</link>
		<comments>http://wp-magazin.ch/2009/05/07/kommentar-template-veraendern-ab-wordpress-27/#comments</comments>
		<pubDate>Thu, 07 May 2009 16:02:49 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Kommentare]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Template Tags]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=2586</guid>
		<description><![CDATA[Ziel dieses Beitrags ist es, die Ausgabe der Kommentare ab WordPress 2.7 manuell zu verändern, weil die WordPress-eigene Darstellung nicht für jedes Design und jeden Blog geeignet ist.]]></description>
			<content:encoded><![CDATA[<p>Mein letztes kleines Projekt war die Anpassung eines WordPress Themes an WordPress 2.7, wo meistens die verschachtelten Kommentare eine Hauptrolle spielen. Weil man nämlich dafür im Kommentar-Template einiges umstellen muss, erkläre ich euch am besten mal, wie das geht. Ziel dieses Beitrags ist es, die Ausgabe der Kommentare ab WordPress 2.7 manuell zu verändern, weil die WordPress-eigene Darstellung nicht für jedes Design und jeden Blog geeignet ist.</p>
<p>Früher sah das Kommentar-Template so aus:</p>
<pre><code>&lt;?php if ($comments) : ?&gt;
	&lt;h2&gt;&lt;?php comments_number('0 Kommentare', '1 Kommentare', '% Kommentare' ); ?&gt;&lt;/h2&gt;
	&lt;ul&gt;
	&lt;?php foreach ($comments as $comment) : ?&gt;
	&lt;li id="comment-&lt;?php echo $commentcount ?&gt;"&gt;

	&lt;?php comment_author_link(); ?&gt;
	?&gt; am &lt;?php comment_date('j. F Y') ?&gt; um &lt;?php comment_time() ?&gt;&lt;/p&gt;
	&lt;?php if ($comment-&gt;comment_approved == '0') : ?&gt;
	Dein Kommentar muss noch geprÃ¼ft werden.&lt;?php endif; ?&gt;
	&lt;?php comment_text() ?&gt;
	&lt;?php edit_comment_link('Kommentar bearbeiten'); ?&gt;
	&lt;/li&gt;
&lt;?php $commentcount++; endforeach; /* end for each comment */ ?&gt;
&lt;/ul&gt;

&lt;?php endif; ?&gt;</code></pre>
<p>Heute ist es ganz anders. Nichts mehr mit lästigen Variablen un eher zweckmässigen Funktionen. Ab WordPress 2.7 hat das Kommentar-Template de facto den gleichen Stand wie die Beiträge, da es jetzt eine eigene Loop ist. Eine Loop für Kommentare eben. Im Vergleich zu vorher ist das neue Template auch ein wenig schlanker geworden. Der Kern ist der hervorgehobene Template Tag <code>&lt;?php wp_list_comments(); ?&gt;</code></p>
<pre><code>&lt;?php if ( have_comments() ) : ?&gt;
	&lt;h3&gt;&lt;?php comments_number('0 Kommentare', '1 Kommentar', '% Kommentare' );?&gt;&lt;/h3&gt;
	&lt;ul class="commentlist"&gt;
		&lt;?php wp_list_comments('type=comment&#038;callback=magazin_comment'); ?&gt;
	&lt;/ul&gt;

	&lt;div class="navigation"&gt;
		&lt;div class="alignleft"&gt;&lt;?php previous_comments_link() ?&gt;&lt;/div&gt;
		&lt;div class="alignright"&gt;&lt;?php next_comments_link() ?&gt;&lt;/div&gt;
	&lt;/div&gt;
 &lt;?php else : // Falls es noch keine Kommentare zum Beitrag gibt ?&gt;
	&lt;?php if ('open' == $post-&gt;comment_status) : ?&gt;
	 &lt;?php else : // comments are closed ?&gt;
		&lt;p&gt;Kommentare sind geschlossen.&lt;/p&gt;
&lt;?php endif; endif; ?&gt;</code></pre>
<p>Jetzt haben wir also schon eine vernünftige Basis, die aber noch einiges an Erklärungen bedarf! Die ersten Zeilen dürften klar sein, da die Funktionen doch recht aussagekräftige Namen haben. Der Container mit den zwei Template Tags <code>&lt;?php previous_comments_link() ?&gt;</code> und <code>&lt;?php next_comments_link() ?&gt;</code> sorgt übrigens für die Navigation, falls die Kommentare auf mehrere Seiten verteilt sind. Dies kann man aber in den WordPress Einstellungen deaktivieren, was dann diesen Code-Teil überflüssig macht.</p>
<p>Habt ihr gesehen, dass ab WordPress 2.7 die Angaben über Kommentierer und Datum nicht mehr direkt im Template stehen? Für diese hat WordPress nämlich schon eine Vorlage. Wer diese Vorlage ändern will, braucht dazu nur <code>&lt;?php wp_list_comments(); ?&gt;</code> zu erweitern! Und zwar um den Parameter <code>'callback=myown_comments'</code>. Folglich sieht diese Zeile nun so aus: <code>&lt;?php wp_list_comments('callback=myown_comments'); ?&gt;</code>.</p>
<p>Jetzt muss man nur noch folgende Zeilen in der <code>functions.php</code> des Themes einfügen und schon kann man die Ausgabe nach Belieben verändern!</p>
<pre><code>&lt;?php function myown_comments($comment, $args, $depth) {
   $GLOBALS['comment'] = $comment; ?&gt;
   &lt;li &lt;?php comment_class(); ?&gt; id="li-comment-&lt;?php comment_ID() ?&gt;"&gt;
     &lt;div id="comment-&lt;?php comment_ID(); ?&gt;"&gt;
      &lt;div class="comment-author vcard"&gt;
         &lt;?php echo get_avatar($comment,$size='48',$default='&lt;path_to_url&gt;' ); ?&gt;

         &lt;?php printf(__('%s says:'), get_comment_author_link()) ?&gt;
      &lt;/div&gt;
		&lt;?php if ($comment-&gt;comment_approved == '0') : ?&gt;
	&lt;em&gt;&lt;?php _e('Your comment is awaiting moderation.') ?&gt;&lt;/em&gt;
	&lt;br /&gt;
	&lt;?php endif; ?&gt;

	&lt;div class="comment-meta commentmetadata"&gt;
	&lt;a href="&lt;?php echo htmlspecialchars(
	get_comment_link( $comment-&gt;comment_ID ) ) ?&gt;"&gt;
	&lt;?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?&gt;&lt;/a&gt;
	&lt;?php edit_comment_link(__('(Edit)'),'  ','') ?&gt;&lt;/div&gt;

		&lt;?php comment_text() ?&gt;

		&lt;div class="reply"&gt;
		&lt;?php comment_reply_link(array_merge(
		$args, array('depth' =&gt; $depth, 'max_depth' =&gt; $args['max_depth'])
		)) ?&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;?php } ?&gt;
</code></pre>
<p><strong>Hinweis</strong>: Am Ende fehlt ein schliessendes <code>&lt;/li&gt;</code>, dieses fügt WordPress automatisch ein, wenn es Child-Kommentare gibt!</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2009/05/07/kommentar-template-veraendern-ab-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Unnötige Template Tags</title>
		<link>http://wp-magazin.ch/2009/03/10/unnoetige-template-tags/</link>
		<comments>http://wp-magazin.ch/2009/03/10/unnoetige-template-tags/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 16:33:25 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Nützliches]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Template Tags]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=2156</guid>
		<description><![CDATA[In diesem Beitrag werde ich einige unnötige Template Tags vorstellen, die man mit beinahe hundertprozentiger Sicherheit durch statische Angaben ersetzen kann, was eine Performancesteigerung des Blogs bedeutet. Und wer will nicht ein schnelles Weblog?]]></description>
			<content:encoded><![CDATA[<p>Bei einem grossen Besucheransturm kann es schon mal vorkommen, dass Seiten nur mühsam laden. Das hat mehrere Ursachen, doch meistens ist auch das WordPress Theme daran Schuld. Unnötige Datenbankabfragen und sehr grosse Template-Dateien sind für Besucher und Administrator gleichermassen nervig.</p>
<p>In diesem Beitrag werde ich einige unnötige Template Tags vorstellen, die man mit beinahe hundertprozentiger Sicherheit durch statische Angaben ersetzen kann, was eine Performancesteigerung des Blogs bedeutet. Und wer will nicht ein schnelles Weblog?</p>
<h3>10+ unnötige Template Tags</h3>
<p>In der header.php findet man meistens folgende Übeltäter:</p>
<ol>
<li><code>&lt;?php language_attributes(); ?&gt;</code> - Im HTML-Doctype gibt diese Funktion an, welche Sprache benutzt wird. Und weil dies ja sicher immer die selbe ist, könnt ihr diesen Template Tag einfach durch <code>dir="ltr" lang="de-DE"</code> ersetzen.</li>
<li><code>&lt;?php bloginfo('html_type'); ?&gt;</code> - Da die Ausgabe immer HTML bleibt, könnt ihr hier auch <code>text/html</code> schreiben.</li>
<li><code>&lt;?php bloginfo('charset'); ?&gt;</code> - Die Codierung sollte man eigentlich nie ändern. Standard ist <code>UTF-8</code>.</li>
<li><code>&lt;?php bloginfo('stylesheet_url'); ?&gt;</code> - Euer Stylesheet wird sich immer am selben Ort befinden. Schreibt also einfach <code>http://blog.de/wp-content/meintheme/style.css</code> hinein.</li>
<li><code>&lt;?php bloginfo('stylesheet_directory'); ?&gt;</code> - Manchmal wird auch auf andere Dateien aus eurem Theme (Bilder, weitere Stylesheets, usw.) verwiesen. Kann man einfach mit der entsprechenden URL ersetzen. <code>&lt;?php bloginfo('template_url'); ?&gt;</code> hat übrigens die gleiche Funktion!</li>
<li>&lt;?php bloginfo('rss2_url'); ?&gt; - Der RSS Feed bleibt immer gleich, deshalb könnt ihr diese unnötige Abfrage gleich durch die Adresse ersetzen. Genau so auch <code>&lt;?php bloginfo('rss_url'); ?&gt;</code>, <code>&lt;?php bloginfo('comments_rss2_url'); ?&gt;</code> und <code>&lt;?php bloginfo('atom_url'); ?&gt;</code></li>
</ol>
<p>Folgende unnötigen Template Tags sind eher allgemein und können in verschiedenen Template-Dateien vorkommen:</p>
<ol>
<li><code>&lt;?php echo get_option('home'); ?&gt;</code> und  - Falls ihr eure Domain nicht wechselt, bleibt die Adresse zu eurem Blog gleich. Ausgegeben wird hier die Adresse à la <code>http://blog.de/</code></li>
<li><code>&lt;?php bloginfo('name'); ?&gt;</code> - Den Namen eures Blogs könnt ihr durchaus selber schreiben und müsst dazu nicht unbedingt ein Template Tag nutzen.</li>
<li><code>&lt;?php bloginfo('description'); ?&gt;</code> - Bei der Beschreibung genau das Gleiche!</li>
<li><code>&lt;?php echo get_num_queries(); ?&gt; Queries. &lt;?php timer_stop(1); ?&gt; Sekunden.</code> - Die Anzahl der Datenbankabfragen und die Ladezeit braucht man eigentlich nicht zwingend auszugeben.</li>
<li>Besonders mutige können an dieser Stelle auch die automatische Auflistung von Seiten oder sogar Kategorien durch statischen Code ersetzen. Aber damit kann man ein Theme sehr schnell zerschiessen. Auf jeden Fall müsste man nur den generierten Quellcode anstelle der Template Tags einfügen...</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2009/03/10/unnoetige-template-tags/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Anzahl Feedleser als Text ausgeben</title>
		<link>http://wp-magazin.ch/2009/01/28/anzahl-feedleser-als-text-ausgeben/</link>
		<comments>http://wp-magazin.ch/2009/01/28/anzahl-feedleser-als-text-ausgeben/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 15:37:25 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[FeedBurner]]></category>
		<category><![CDATA[FeedStats]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=1790</guid>
		<description><![CDATA[Mit wenigen Handgriffen kann man mittels FeedBurner oder dem FeedStats Plugin die Anzahl der Feedleser ermitteln und ausgeben lassen.]]></description>
			<content:encoded><![CDATA[<p>Um ein bisschen zu prahlen - oder einfach nur der Statistik wegen - kann man im Blog die Anzahl der Personen ausgeben, die den RSS Feed abonniert haben. Wie man weiss ist diese Zahl von Seite zu Seite unterschiedlich: Mache haben 1000 Leser, andere 20, usw. Ab welcher Grössenordnung ihr diese Zahl ausgeben möchtet, hängt von euch und eurem Bauchgefühl ab. Bei wenigen bis gar keinen Nutzern schiesst ihr ein Eigentor, aber ab etwa 100 Stück macht dies durchaus Sinn.  Ich zeige euch zwei Wege, wie ihr mit wenigen Handgriffen zu einem komfortablen Ergebnis kommen könnt. Dazu braucht ihr nur das beliebte Tool <a title="FeedBurner" href="http://feedburner.com/">FeedBurner</a> oder das WordPress Plugin <a title="WordPress Plugins - FeedStats" href="http://wordpress.org/extend/plugins/feedstats-de/">FeedStats</a>, da man ja irgendwie auch die Feedleser zuerst ermitteln muss.</p>
<h3>FeedStats</h3>
<p>Frank Bültges <a title="WordPress Plugins - FeedStats" href="http://wordpress.org/extend/plugins/feedstats-de/">FeedStats Plugin</a> ist meiner Meinung nach das beste auf dem Markt und ziemlich genau beim Zählen. Da man als Administrator nicht viel mehr tun muss, als das Plugin zu installieren und gegebenenfalls die Einstellungen anzupassen. Bei all meinen Blogs hat geht damit alles tadellos - nur eins habe ich bisher nie angewendet: Die Möglichkeit, die Anzahl Feedleser im Blog auszugeben.  Zum Glück hat Frank schon von Anfang an daran gedacht und bietet gleich zwei Funktionen an, um die Anzahl der Feedleser zu ermitteln. Die erste sorgt in etwa für die folgende Auflistung, die man wunderbar in der Sidebar benutzen kann.</p>
<ul>
<li>Gesamt: 8928<small> (Letzten 31 Tage)</small></li>
<li>Maximum: 489 <small>(9. November 2008)</small></li>
<li>Durchschnitt: 288</li>
</ul>
<p>Dazu muss man jetzt bloss folgenden Code irgendwo im Template platzieren: <code>&lt;?php feedstats_getfeeds(); ?&gt;</code></p>
<p>Etwas schlanker und für uns überhaupt erst relevant ist aber eine andere Funktion, mit der man bloss den Durchschnitt der Leser anzeigen lassen kann. Das wäre beim oben genannten Beispiel die Zahl 288. Für das braucht man nur die Funktion <code>&lt;?php feedstats_getfeeds_button(); ?&gt;</code></p>
<p>Möchte man dies noch als schicken Button gestalten, findet man die passenden Informationen dazu in der Readme-Datei.</p>
<h3>FeedBurner</h3>
<p>Seit Google den kostenlosen Statistik-Dienst <a title="FeedBurner" href="http://feedburner.com/">FeedBurner</a> aufgekauft hat, geht es erst so richtig vorwärts. Zwar musste man zwischenzeitlich einmal die Feed URL umstellen und bei vielen wurden die Leser nicht korrekt gezählt, aber im Endefekkt eine tolle Sache. Für die Einbettung von FeedBurner in WordPress braucht man nur das offizielle <a title="WordPress Plugins - FeedSmith" href="http://www.google.com/support/feedburner/bin/answer.py?answer=78483&amp;topic=13252">FeedSmith Plugin</a>, dank dem man bequem aus dem Admin-Bereich die neue Feed-Adresse eintragen kann. Fertig!</p>
<p>Sollte dann alles nach Plan laufen, kann man sich an die nächste Hürde und unser Ziel dieses Beitrags wagen. Wir wollen also die Anzahl Feedleser ausgeben. Das können zwar schon die kitischigen Buttons, aber diese sind etwas in die Jahre gekommen. Viel lieber holen wir uns die Daten selber!</p>
<p>Einfach Code kopieren und an der gewünschten Stelle (Sidebar, Header, etc.) einfügen. Bei Seiten, Artikeln und Widgets braucht man dafür das <a title="WordPress Plugins - Exec-PHP" href="http://wordpress.org/extend/plugins/exec-php/">Exec-PHP Plugin</a>.</p>
<pre><code>&lt;?php

    $feeds = array('Feed1', 'Feed2', 'Feed3');
    // Nur die ID, bei feeds2.feedburner.com/autolos ist dies also "autolos"

    $feedcount = 0; // Neue Variable
    foreach ($feeds as $feed) {
    $url="http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=$feed";
    $ch = curl_init(); // Initialzündung
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = curl_exec($ch);
    curl_close($ch); // cURL hat sich die Daten geholt, also weiter!
    $xml = new SimpleXMLElement($data); // SimpleXML starten
    $feedcount += $xml-&gt;feed-&gt;entry['circulation']; // zählen
    }
    echo $feedcount; // Endlich fertig!
?&gt;</code></pre>
<p>Zur Erklärung und Hilfestellung:</p>
<ul>
<li>Benötigt werden PHP5 mit cURL und SimpleXML.</li>
<li>Wer seine Daten nicht preisgeben möchte oder falls es nicht funktioniert: Im Adminbereich die Awareness API aus- resp. einschalten</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2009/01/28/anzahl-feedleser-als-text-ausgeben/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Unterseiten in der Sidebar anzeigen</title>
		<link>http://wp-magazin.ch/2008/11/02/unterseiten-in-der-sidebar-anzeigen/</link>
		<comments>http://wp-magazin.ch/2008/11/02/unterseiten-in-der-sidebar-anzeigen/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 15:14:26 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Seiten]]></category>
		<category><![CDATA[Sidebar]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=954</guid>
		<description><![CDATA[Heute bin ich über einen interessanten Link gestolpert, wo erklärt wird, wie man Unterseiten in der Sidebar anzeigen lassen kann. Diese Funktion ist ziemlich cool und die ideale Möglichkeit, Untermenüs nicht an die Elternelemente zu binden, sondern an einem beliebigen anderen Ort auf der Website - hier die Sidebar - darzustellen.]]></description>
			<content:encoded><![CDATA[<p>Heute bin ich über einen <a href="http://www.wprecipes.com/how-to-display-subpages-on-your-sidebar">interessanten Link</a> gestolpert, wo erklärt wird, wie man Unterseiten in der Sidebar anzeigen lassen kann. Diese Funktion ist ziemlich cool und die ideale Möglichkeit, Untermenüs nicht an die Elternelemente zu binden, sondern an einem beliebigen anderen Ort auf der Website - hier die Sidebar - darzustellen.</p>
<p>So geht's:</p>
<pre><code>
&lt;?php
$children = wp_list_pages('title_li=&#038;child_of='.$post->ID.'&#038;echo=0');
if ($children) { ?&gt;
    &lt;ul&gt;
        &lt;?php echo $children; ?&gt;
    &lt;/ul&gt;
&lt;?php } ?&gt;
</code></pre>
<p>Mit der Funktion wp_list_pages und den passenden Parametern (echo=0 sorgt dafür, dass das Resultat nicht angezeigt wird) fragen wir ab, ob diese Seite Kindelemente hat. Falls ja (if ($children)) werden diese in einer ungeordneten Liste dargestellt. So einfach ist das also :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2008/11/02/unterseiten-in-der-sidebar-anzeigen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sicherheits-Release: WordPresss 2.6.2</title>
		<link>http://wp-magazin.ch/2008/09/09/sicherheits-release-wordpresss-262/</link>
		<comments>http://wp-magazin.ch/2008/09/09/sicherheits-release-wordpresss-262/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 07:47:26 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[2.6.2]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=573</guid>
		<description><![CDATA[Wer bisher auf WordPress 2.6 verzichtet hat, sollte schleunigst auf die neuste Version 2.6.2 updaten, falls sich in deinem Blog jeder beliebige Besucher registrieren kann. Grund dafür sind zweu grosse grosse Sicherheitslöcher, die SQL Column Truncation und die nicht ganz so richtig funktionierende Funktion mt_srand(), die in WordPress 2.6.2 behoben [...]]]></description>
			<content:encoded><![CDATA[<p>Wer bisher auf WordPress 2.6 verzichtet hat, sollte schleunigst auf die neuste Version 2.6.2 updaten, falls sich in deinem Blog jeder beliebige Besucher registrieren kann. Grund dafür sind zweu grosse grosse Sicherheitslöcher, die <a title="Description of vulnerability" href="http://www.suspekt.org/2008/08/18/mysql-and-sql-column-truncation-vulnerabilities/" target="_blank">SQL Column Truncation</a> und die nicht ganz so richtig funktionierende <a title="mt_srand()" href="http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/">Funktion mt_srand()</a>, die in WordPress 2.6.2 behoben wurden. Wie wir das Team von <a title="WordPress Deutschland" href="http://wordpress-deutschland.org/">WordPress Deutschland</a> kennen, haben sie darüber schon <a title="WordPress Deutschland Blog - WordPress 2.6.2" href="http://blog.wordpress-deutschland.org/2008/09/08/wordpress-262-veroeffentlicht.html">gestern um 22:00 Uhr</a> berichtet und bestimmt noch im Verlauf der nächsten Stunden eine übersetzte Version nachliefern. Hut ab!</p>
<p>Man kann davon ausgehen, dass mt_srand() auch bei anderen, vielleicht auch selbst gemachten, Web-Applikationen zum Einsatz kommt. Das sollte man nach Möglichkeit auch rasch beheben!</p>
<p>Neben den Sicherheits-Fixes in 2.6.2 gibt es auch viele kleinere <a title="WordPress Trac - 2.6.2" href="http://trac.wordpress.org/query?status=closed&amp;milestone=2.6.2&amp;resolution=fixed&amp;order=priority">Bug Fixes</a>.  Hier findest du <a title="WordPress Trac - 2.6.2" href="http://trac.wordpress.org/changeset?old_path=tags%2F2.6.1&amp;old=8849&amp;new_path=tags%2F2.6.2&amp;new=8849">die Liste aller geänderten Dateien</a>.</p>
<p>Ps. <a title="WordPress Deutschland Blog - TinyMCE Rechtschreibprüfung" href="http://blog.wordpress-deutschland.org/2008/09/08/tinymce-und-die-deutsche-rechtschreibpruefung.html">TinyMCE Rechtschreibprüfung</a> hat ein paar Macken.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2008/09/09/sicherheits-release-wordpresss-262/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arbeiten mit WordPress in Dreamweaver</title>
		<link>http://wp-magazin.ch/2008/09/07/arbeiten-mit-wordpress-in-dreamweaver/</link>
		<comments>http://wp-magazin.ch/2008/09/07/arbeiten-mit-wordpress-in-dreamweaver/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 08:03:38 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Nützliches]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Template Tags]]></category>

		<guid isPermaLink="false">http://wp-magazin.ch/?p=600</guid>
		<description><![CDATA[WordPress ist eines der beliebtesten Blog-Systemen der Welt und Dreamweaver ist eines der beliebtesten Code-Editoren der Welt. Ein Grund für mich, etwas genauer auf die zwei Plattformen einzugehen und zu versuchen, das gemeinsame Arbeiten der beiden Programme zu vereinfachen.]]></description>
			<content:encoded><![CDATA[<p><a title="WordPress.org" href="http://wordpress.org/">WordPress</a> ist eines der beliebtesten Blog-Systemen der Welt und <a title="Adobe Dreamweaver" href="http://www.adobe.com/products/dreamweaver/">Dreamweaver</a> ist eines der beliebtesten Code-Editoren der Welt. Ein Grund für mich, etwas genauer auf die zwei Plattformen einzugehen und zu versuchen, das gemeinsame Arbeiten der beiden Programme zu vereinfachen. Dass Dreamweaver gut mit der in WordPress genutzten Skriptsprache umgehen kann, ist wirklich kein Geheimnis. Aber damit unser Editor auch mit dem etwas komplizierten Template-System etwas anfangen kann, gibt es WordPress Dreamweaver Extensions.</p>
<p>Die Trennung von Inhalt und Design ist bei WordPress etwas umständlich, deshalb ist es von Vorteil, sich eine solche Extension zu installieren. Meine zwei Favoriten sind der <a href="http://wp-magazin.ch/wp-content/uploads/wp-builder.zip">WordPress Template Builder</a><a title="WordPress Template Builder für Dreamweaver" href="http://"></a> (Download-Link) und <a title="TAGStention für Dreamweaver" href="http://solutoire.com/tagstention/">TAGStention</a>. Noch bevor du dir jetzt diese zwei Extensions herunterlädst, muss ich darauf hinweisen, dass es für den Template Builder keinerlei Support gibt und TAGStention seit über zwei Jahren in der Version 0.3 vor sich hin dümpelt.</p>
<p>Im Grunde funktionieren beide Dreamweaver Extensions ähnlich: Mit ihnen kann man (fast) alle Template Tags einfügen. Von der Feed-URL bis zur umfangreichen Schleife ("Loop"). Mein persönlicher Favorit und die Extension, die ich jedem empfehle, ist TAGStention. Es ist sehr umfangreich und bietet Unterstützung für Ultimate Tag Warrior und deutlich mehr Template Tags, die man auch bequemer einfügen kann als im WordPress Template Builder.</p>
<p>Hier zwei Screenshots der Extensions mit Adobe Dreamweaver CS3:</p>
<div id="attachment_617" class="wp-caption alignnone" style="width: 310px"><a href="http://wp-magazin.ch/wp-content/uploads/tagstention.gif"><img class="size-medium wp-image-617" title="TAGStention" src="http://wp-magazin.ch/wp-content/uploads/tagstention-300x150.gif" alt="TAGStention" width="300" height="150" /></a><p class="wp-caption-text">TAGStention</p></div>
<div id="attachment_616" class="wp-caption alignnone" style="width: 310px"><a href="http://wp-magazin.ch/wp-content/uploads/wordpress-template-builder.gif"><img class="size-medium wp-image-616" title="WordPress Template Builder" src="http://wp-magazin.ch/wp-content/uploads/wordpress-template-builder-300x150.gif" alt="WordPress Template Builder" width="300" height="150" /></a><p class="wp-caption-text">WordPress Template Builder</p></div>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2008/09/07/arbeiten-mit-wordpress-in-dreamweaver/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Feeds mit PHP und MySQL auslesen</title>
		<link>http://wp-magazin.ch/2008/03/17/feeds-php-mysql/</link>
		<comments>http://wp-magazin.ch/2008/03/17/feeds-php-mysql/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 20:06:33 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.wp-magazin.ch/2008/03/17/feeds-php-mysql/</guid>
		<description><![CDATA[Es braucht kein XXL-Paket wie MagpieRSS - mit ein paar Zeilen PHP erzielst du den selben Effekt.]]></description>
			<content:encoded><![CDATA[<p>Zurück aus der einwöchigen Abwesenheit melde ich mich mit einem Artikel, der die Verwendung von MySQL-Abfragen und PHP als Alternative zu MagpieRSS zeigt. Im Vorfeld erschien schon ein Artikel über die <a title="Feeds mit MagpieRSS auslesen" href="http://www.wp-magazin.ch/2008/03/09/feeds-magpierss/">Feed-Verarbeitung mit MagpieRSS</a> - jetzt gibt es das Gegenstück in Form von wenig Code-Bastelei!</p>
<p><strong>Achtung</strong>: Diese Methode greift auf die MySQL Datenbank und somit auf alle Daten von WordPress zu. Sei dir bewusst, dass mit solchen MySQL-Codes schnell einmal ganze Tabellen geleert und gelöscht werden können! Ausserdem kann damit keine serverübergreifende Lösung erarbeitet werden.</p>
<h3>Das Problem und die Lösung dazu</h3>
<p>Mir ging es auch einmal wie dem Autor des englischen Artikels (siehe Schluss): Ich wollte auf meiner statischen Website die letzten Artikel meines Blogs anzeigen. Gescheitert bin ich unter anderem an der Datumsanzeige und der Umwandlung der ID in den Namen des Autors. Aber das ist schon mindestens ein Jahr her und ich muss mich damit auch nicht mehr beschäftigen.</p>
<p>Zuerst einmal machen wir uns Gedanken über den Speicherort (Datenbank) und den Weg zur Anzeige (Output durch MySQL-Abfrage in PHP) . Wir stellen eine Verbindung zur Datenbank her, was mit diesen wenigen Zeilen schnell getan ist.</p>
<pre><code>
&lt;?php
/*Turn off error reporting.*/
error_reporting(0);
/*Configure your database connection*/
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
/*Connect to the database.*/
$conn = mysql_connect ($dbhost, $dbuser, $dbpass)
or die
('There was an error connecting to the database.');
/*Select your WordPress database.*/
$dbname = 'dbname';
mysql_select_db ($dbname);
</code></pre>
<p>Jetzt lesen wir den letzten Artikel mit Datum, Kopfzeile und Exzerpt aus. Damit man gleich zum Artikel gelangt, verlinken wir den Titel.</p>
<pre><code>
/*Get data from the database*/
$howmany = 1;
$result = mysql_query
("SELECT * FROM wp_posts
WHERE `post_type`=\"post\" and `post_status`= \"publish\"
ORDER BY post_date desc
LIMIT " . $howmany);
/*Display the data*/
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
//Date function
$datevalue = $row['post_date'];
$dateArray=explode('-',$dateva lue);
// Example of results
// $dateArray[0]= 2007
// $dateArray[1] = 02
// $dateArray[2] = 05
?&gt; &lt;p class="date"&gt; &lt; ?php
echo date('F j, Y', mktime(0, 0, 0, $dateArray[1],
$dateArray[2], $dateArray[0]));
echo "&lt;/p&gt;"; ?&gt;
&lt;h3 class="title"&gt;
&lt;a href="&lt;?php echo "{$row['guid']}”;?&gt;”
title=”Permalink to: &lt; ?php echo “{$row['post_title']}”;?&gt;”&gt;
&lt; ?php echo "{$row['post_title']}”;?&gt;&lt;/a&gt;
&lt;/h3&gt;
&lt;div class="excerpt"&gt;
&lt; ?php echo "{$row['post_excerpt']}”;?&gt;
&lt;/div&gt;
&lt;/p&gt;</code></pre>
<p>Nun muss man nur noch schnell den Arbeitsspeicher leeren und die Verbindung zum MySQL-Host beenden und das war's auch schon!</p>
<pre><code>
//Free the memory and then
mysql_free_result($result);
//Close the database connection.
mysql_close ($conn);  ?&gt;
</code></pre>
<h3>Source herunterladen</h3>
<p>Alle drei Code-Teile kannst du als Text-Datei zusammengefasst bequem herunterladen und in deine Seite einbauen. Du kannst diese Datei z.B. mit Dreamweaver oder einem ähnlichen Programm öffnen und bearbeiten.</p>
<p><a title="Source: Display WordPress Entries on ANY Part of your Website" href="http://www.wp-magazin.ch/wp-content/uploads/display-wordpress-post.txt">Jetzt Source herunterladen</a></p>
<p>Wenn du den Code genauer anschaust, erkennst du, dass eine Änderung von gewissen Dingen sehr einfach ist. Man kann die Anzahl der auszugebenden Artikel mit der Variable <em>$howmany</em> verändern und muss sich keine Gedanken über Template-Tags machen.</p>
<p>Falls du deine Konfigurationen der MySQL-Verbindung zu Ihrer WordPress-Datenbank verlegt hast, findest du diese in der Datei <em>wp-config.php</em>.</p>
<p>Gefunden bei: <a rel="bookmark" href="http://www.bigsquaredot.com/blog/2007/03/12/display-wordpress-entries-on-static-pages/">A (Smarter) Solution for Displaying WordPress Entries on ANY Part of Your Website</a>c</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2008/03/17/feeds-php-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Feeds mit MagpieRSS auslesen</title>
		<link>http://wp-magazin.ch/2008/03/09/feeds-magpierss/</link>
		<comments>http://wp-magazin.ch/2008/03/09/feeds-magpierss/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 18:09:01 +0000</pubDate>
		<dc:creator>Pascal Birchler</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.wp-magazin.ch/2008/03/09/feeds-magpierss/</guid>
		<description><![CDATA[Mit den Weblogs kamen auch RSS Feeds. Wir zeigen, wie man diese praktisch ausliest und in korrektem HTML wieder darstellt.]]></description>
			<content:encoded><![CDATA[<p>Wer auf seiner Homepage die neusten Beiträge aus dem Blog anzeigen will, kann auf PHP und Feeds zählen. Es stellt sich aber als schwierig heraus, eine gute Darstellung zu erhalten und dabei gleichzeitig das Nötigste an Informationen anzuzeigen. Hier kommt <a title="MagpieRSS" href="http://magpierss.sourceforge.net/">MagpieRSS</a> ins Spiel, ein PHP basierender RSS Parser.</p>
<p>Damit der ahnungslose WordPress User nicht gleich voller Unwissen den Plan aufgeben, gibt es in der Dokumentation von <a href="http://wordpress-deutschland.org/" title="WordPress Deutschland">WordPress Deutschland</a> einen <a title="WordDoku - Beiträge extern darstellen" href="http://doku.wordpress-deutschland.org/Beiträge_extern_darstellen">Artikel über die externe Darstellung von Beiträgen</a>. Ich zeige Ihnen zusätzlich noch einige Tricks im Rahmen der Gestaltung und Verwendung.</p>
<h3>Erste Einstellungen</h3>
<p>Ganz wichtig ist die Ordnerstruktur, die für die richtige Darstellung und Funktion von MagpieRSS entscheidend ist. Während der ganzen Anleitung geht der Autor von dieser Ordnerstruktur aus:</p>
<pre>..
/blog/
/magpierss/
index.php
impressum.php</pre>
<p>Im Verzeichnis /blog/ liegt die WordPress Installation, im Ordner /magpierss/ unser Parser und die Dateien index.php und impressum.php zeigen, dass sie im obersten Verzeichnis liegen. Jetzt können wir mit dem Einbinden von MagpieRSS anfangen. Dazu benötigen wir diese Zeile:</p>
<pre><code>&lt;?php
 $rss_url = 'http://yourhp.de/blog/feed/';
 $my_rss = fetch_rss($rss_url);
 $my_rss-&gt;items = array_slice($my_rss->items, 0, 3);
 ?&gt;
</code></pre>
<p>Danach müssen wir nur noch unser Feed einbinden und mit einer ordentlichen HTML-Struktur verschachteln. Ersteres ist sehr einfach und in drei Zeilen untergebracht:</p>
<pre><code>
<dl>
 &lt;?php
 foreach ($my_rss as $item) {
 $title = $item['title'];
 $url = $item['link'];
 $description = $item['description'];
 ?&gt;
  &lt;dt&gt; &lt;a href=" &lt;?php print"$url"; ?&gt;"&gt; &lt;?php print"$title"; ?&gt;&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;&lt;?php print"$description"; ?&gt; &lt;/dd&gt;
  &lt;?php
 }
 ?&gt;
 </dl>

</code></pre>
<p>Ich überspringe jetzt noch ein paar kleiner Schritte und komme direkt zum Schluss, da du die Anleitung am besten in der Dokumentation anschaust, vielleicht wird dieser Artikel in der Doku einmal überarbeitet.</p>
<h3>Nützliche Links</h3>
<p>Hier sind die im Text vorhandenen Links sowie zwei weitere nützliche Seiten nochmals zusammengetragen.</p>
<ul>
<li><a title="MagpieRSS" href="http://magpierss.sourceforge.net/">MagpieRSS - PHP RSS Parser</a></li>
<li><a title="WordDoku - Beiträge extern darstellen" href="http://doku.wordpress-deutschland.org/Beiträge_extern_darstellen">WordDoku - Beiträge extern darstellen</a></li>
<li><a title="Dr. Web - Content Syndication mit RSS" href="http://www.drweb.de/weblogs/rss_content_syndication.shtml">Dr. Web - Content Syndication mit RSS</a></li>
<li><a title="Dr. Web - MagpieRSS und Smarty heiraten" href="http://www.drweb.de/weblogs/magpie-rss-smarty.shtml">Dr. Web - MagpieRSS und Smarty heiraten</a></li>
</ul>
<p>Jetzt kannst du mit Sicherheit externe Feeds auslesen und darstellen und dank dem schlichten Dateiformat XML ideal an deine Website anpassen. Es gibt auch Seiten, auf denen erklärt wird, wie man Feeds in Flashobjekten ausliest, aber dafür bin ich der falsche Ansprechpartner ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-magazin.ch/2008/03/09/feeds-magpierss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
