Praktischer SEO Einsatz von multiplen Custom Fields in WordPress

Nachdem aus irgendeinem Grund mein letzter Twitter-Post (Praktischer Einsatz vom Custom Fields in WordPress) die Runde macht obwohl man nur das Ergebnis sieht, möchte ich Euch auch zeigen was dahinter steckt und beantworte auch gleich die Frage was das wohl mit SEO (Suchmaschinenoptimierung) zu tun hat.

Ein Überblick

Schauen wir uns erst einmal an, wozu Custom Fields in WordPress gut sind. WordPress bietet von Haus aus einige Theme-Tags, mit denen man sein Template bzw. Kategorien- oder Postingseiten gestalten kann. Wer allerdings noch einen Schritt weiter gehen möchte benutzt Custom Fields. Im Deutschen WordPress Benutzerdefinierte Felder. Mit diesen Felder ist es möglich einem Beitrag extra Werte hinzuzufügen um diese z. B. im Template auszugeben. Das macht vor allem Sinn, wenn viele Daten oft wiederkehren. Auf seo-geek.de wäre das z. B. der Download am Ende jedes Postings, wie auch jetzt die weiterführenden Links.
Mittels einer extra Funktion und eines Hooks können wir die Ausgabe gezielt steuern.

Was hat das nun mit SEO zu tun?

Die Custom Fields von WordPress sind nur ein Werkzeug - unsere Suchmaschinenoptimierung findet im Linkaufbau statt. Suchmaschinen wissen es zu schätzen, wenn man andere Webseiten verlinkt, also eine Webseite empfiehlt zu betrachten. Dadurch wird auch Trust vergeben, nicht zuletzt auch der berühmte PageRank. Im heutigen Posting entwerfen wir ein kleines Plugin (oder wer mag auch eine templatebasierte Funktion). Ich wähle hierzu die Pluginvariante, damit wir das ganze auch schnell auf anderen WordPress-Installationen benutzen können.

Vorbereitungen an unserer WordPress-Installation

Damit wir Custom Fields in WordPress ausgeben können, müssen wir diese natürlich vorher anlegen. Jedes Custom Field muss einen eindeutigen Namen besitzen. In diesem Fall habe ich mich für den Namen "links2visit" entschieden. Man kann auch nach Belieben einen anderen Namen für unser Benutzerdefiniertes Feld vergeben.

Der Aufbau unseres kleinen Plugins

Damit WordPress unser Mini-Plugin auch erkennt müssen wir uns an manche Vereinbarungen von WordPress halten. So muss in den ersten Zeilen ein Stückchen Code stehen um diese Vereinbarung zu erfüllen.


<?php
/*
Plugin Name: seo-links2visit
Plugin URI: http://www.seo-geek.de
Description: Place an unorderd list to end of post, in regard to custom field links2visit
Version: 0.2
Author: Daniel Friedrich
Author URI: http://www.seo-geek.de
*/

Nun ist es an der Zeit unsere Funktion zu schreiben. Der Plan sieht folgendermaßen aus:

  • Custom Fields auslesen
  • Custom Fields verarbeiten
  • Custom Fields an den Content anhängen

Was müssen wir noch wissen? Wir wollen natürlich neben Link auch einen Titel für den Link bzw. Text eingeben. Damit wir das ganze in einem Custom Field unterkriegen müssen wir uns überlegen wie man alles in eine Zeile bekommt. Ich habe mich für folgende Methode entschieden:

http://www.link.de|Titel des Links

Wichtig an dieser Methode ist, dass wir den geraden Strich machen, denn anhand diesem Strichs wird unsere Funktion den String an dieser Stelle trennen und das Ganze verarbeiten. Die Funktion sieht folgendermaßen aus:


function seo_links2visit($content)
{
	global $post;

	$tmp = get_post_meta($post->ID, 'links2visit');

	if($tmp)
			{
				$out = "";
				$out .= '<h3>Weiterf&amp;uuml;hrende Links</h3>';
				$out .= '<ul>' ;
				foreach($tmp as $links)
				{
						$row = explode('|',$links);
						$out .= '<li><a href="'.$row[0].'?phpMyAdmin=fac4b407329t262ea922" title="'.$row[1].'">'.$row[1].'</a></li>';
				}
				$out .= '</ul>';
			}
	if(!is_home())
	{
	return $content.$out;
	}
	else
	{
	return $content;
	}
}

Betrachten wir uns einmal die Funktion. In der ersten Zeile greifen wir auf die globale Variable $post zu, welches unter anderem vom aktuellen Post die ID in sich trägt. Anhand dieser ID lesen wir mittels der Funktion get_post_meta() das Custom Field "links2visit" aus.

In der folgenden Schleife bauen wir uns den String auf, der an den Content angehängt werden soll. Wir beginnen (in diesem Fall) eine unsortierte Liste, welche wir mit einer foreach-Schleife mit Inhalten füllen. In der Schleife teilen wir den String mit der PHP-eigenen Funktion exlode() in seine Bestandteile auf. Aus diesem Grund haben wir im String den Strich benutzt - als eindeutiges Trennzeichen. Nachdem der String aufgeteilt wurde, fangen wir an die Linkzeile aufzubauen. Suchmaschinenoptimiert wie wir arbeiten starten wir einen Link welchen wir mit einem Titel versehen. Der Titel wird außerdem auch als Link-Text verwendet. Nachdem die Schleife durchlaufen wurde, beenden wir wieder unsere Liste. Am Ende fügen wir unseren generierten String noch an den $content an, welcher an die Funktion übergeben wurde.

Damit die Funktion aufgerufen und die Custom Fields im Content ausgegeben werden, müssen wir noch den Filter starten, damit die Funktion auch ausgeführt wird.


add_filter('the_content', seo_links2visit);
?>

Im Falle der Pluginbenutzung müssen wir die Datei noch in index.php umbennen und in einem Ordner in das Plugin Verzeichnis von WordPress kopieren - und natürlich auch aktivieren. Wenn wir jetzt einen Artikel von mehren Custom Fields vom gleichen Typ füttern wird die Funktion daraus eine Liste generieren, welche am Ende des Beitrags angezeigt wird.

Möglichkeiten das Ganze zu erweitern

Es gibt natürlich noch andere Möglichkeiten wie man die Custom Fields von WordPress suchmaschinenoptimiert nutzen kann. So können wir unseren String z. B. um noch ein Trennzeichen erweitern und z. B. das Tag nofollow mit aufnehmen. Die Funktion muss demnach noch um eine Abfrage erweitern werden, dass wenn es eine dritte Spalte gibt, dass dann auch ein rel=nofollow ausgegeben wird. Das ist nicht das einzige was man machen kann - der Möglichkeiten gibt es viele. Man kann auch alternative Linktexte mit angeben usw. Ihr seht es stehen alle Möglichkeiten offen.

Ich hoffe der Beitrag hat Euch wieder mal ein wenig geholfen. Ich wünsche Euch noch ein schönes Wochenende.

Euer

seo-geek Daniel

Weiterführende Links


Alle Posts der Woche 34 / 2009 anschauen

Fandest Du den Beitrag interessant?

Der Beitrag ist mir etwas wert:
Fatal error: Call to undefined function the_flattr_permalink() in /var/www/html/web1028/html/seo-geek-de/wp-content/themes/seogeek/single.php on line 48