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 dir auch zeigen was dahinter steckt und beantworte auch gleich die Frage was das wohl mit SEO (Suchmaschinenoptimierung) zu tun hat.
Ein Überblick
Schauen wir 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. Mittels einer extra Funktion und eines Hooks kannst du die Ausgabe gezielt steuern.
Geniale Themes: MyThemeShop | Vorteile: |
|
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 entwerfe ich ein kleines Plugin (oder wer mag auch eine templatebasierte Funktion). Ich wähle hierzu die Pluginvariante, damit man das ganze auch schnell auf anderen WordPress-Installationen benutzen kann.
Vorbereitungen an der WordPress-Installation
Damit man Custom Fields in WordPress ausgeben kann, muss man 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 das Benutzerdefiniert Feld vergeben.
Der Aufbau des kleinen Plugins
Damit WordPress das Mini-Plugin auch erkennt musst du dich an manche Vereinbarungen von WordPress halten. So muss in den ersten Zeilen ein Stückchen Code stehen um diese Vereinbarung zu erfüllen.
1 2 3 4 5 6 7 8 | <?php /* Plugin Name: seo-links2visit Plugin URI: https://www.how-to-wordpress.de Description: Place an unorderd list to end of post, in regard to custom field links2visit Version: 0.2 Author URI: https://www.how-to-wordpress.de */ |
Nun ist es an der Zeit die Funktion zu schreiben. Der Plan sieht folgendermaßen aus:
- Custom Fields auslesen
- Custom Fields verarbeiten
- Custom Fields an den Content anhängen
Was musst du noch wissen? Wir wollen natürlich neben Links auch einen Titel für den Link bzw. Text eingeben. Damit man das ganze in einem Custom Field unterkriegt muss man ü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 du den geraden Strich machst, denn anhand diesem Strichs wird die Funktion den String an dieser Stelle trennen und das Ganze verarbeiten. Die Funktion sieht folgendermaßen aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function seo_links2visit($content) { global $post; $tmp = get_post_meta($post->ID, 'links2visit'); if($tmp) { $out = ""; $out .= '<h3>Weiterf&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 einmal die Funktion. In der ersten Zeile wird auf die globale Variable $post zugegriffen, welches unter anderem vom aktuellen Post die ID in sich trägt. Anhand dieser ID wird mittels der Funktion get_post_meta() das Custom Field „links2visit“ ausgelesen.
In der folgenden Schleife wird der String aufgebaut, der an den Content angehängt werden soll. Es beginnt (in diesem Fall) mit einer unsortierte Liste, welche durch eine foreach-Schleife mit Inhalten gefüllt wird.
In der Schleife wird der String mit der PHP-eigenen Funktion exlode() in seine Bestandteile aufgeteilt. Aus diesem Grund muss im String der Strich benutzt werden – als eindeutiges Trennzeichen. Nachdem der String aufgeteilt wurde, wird damit angefangen die Linkzeile aufzubauen. Suchmaschinenoptimiert startet nun eine Link welcher mit einem Titel versehen werden. Der Titel wird außerdem auch als Link-Text verwendet.
Nachdem die Schleife durchlaufen wurde, wird die Liste wieder beendet. Am Ende wird unseren generierten String noch an den $content angefügt, welcher an die Funktion übergeben wurde.
Damit die Funktion aufgerufen und die Custom Fields im Content ausgegeben werden, muss noch den Filter gestartet werden, damit die Funktion auch ausgeführt wird.
1 2 | add_filter('the_content', seo_links2visit); ?> |
Im Falle der Pluginbenutzung muss die Datei noch in index.php umbenannt und in einem Ordner in das Plugin Verzeichnis von WordPress kopieren werden – und natürlich auch aktivieren werden. Wenn du jetzt einen Artikel von mehreren Custom Fields vom gleichen Typ fütterst 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 kannst du deinen 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, Möglichkeiten gibt es viele. Man kann auch alternative Linktexte mit angeben usw. du siehst es stehen dir alle Möglichkeiten offen.