WordPress

Kleiner WordPress-Hack: Semi-automatisch auf mehrere Webseiten mit ähnlichen URLs verweisen

Wie realisiert man ein halbautomatisches Verlinken auf Internetseiten, die eine ähnliche URL haben mit WordPress?

Für eines meiner Projekte rund um Lycos iQ stellte sich mir diese Frage. Denn es soll auf Fragen aller Partner-Plattformen gleichzeitig verwiesen werden. Natürlich mit einem möglichst geringen Aufwand für den schreibenden WordPress-Benutzer.

Grundlage: Die URL-Struktur von Lycos iQ und den Partnern

Die URLs (Internetadressen) von Lycos iQ und seinen Partnern sind alle sehr ähnlich aufgebaut. Im Grunde ändert sich jeweils nur der Domainname und ggf. die Subdomain.

Aufbau der Adressen der Fragen bei Lycos iQ

Gewöhnlich sieht man die URL in dieser Form:

http://iq.lycos.de/qa/show/914397/Personensuchmaschinen+im<wbr />+Internet+-+eine+neue+Qualit%C3%A4t+beim+Datenschutz%3F/

Doch wichtig um zu der eigentlichen Frage zu kommen, ist nur der Teil bis zur Nummer der Frage. Also dieser Teil:

http://iq.lycos.de/qa/show/914397/Personensuchmaschinen+im+Internet+-+eine+neue+Qualit%C3%A4t+beim+Datenschutz%3F/

Wobei der Trailingslash am Ende sogar auch noch weggelassen werden kann. Der restliche Teil der URL ist eigentlich nur für Suchmaschinen wichtig, die Keywords (also Suchbegriffe) in der URL auch etwas schätzen oder Besucher, die sich anhand der Adressen orientieren.

Aufbau der Fragen-URLs bei den Lycos iQ-Partnern

Vergleicht man die Adressen der Partner mit denen von iQ, lässt sich schnell ein gewisses Muster erkennen:

no problem! http://no-problem.brigitte.de/qa/show/914397/
BesserWissen http://besserwissen.pm-magazin.de/qa/show/914397/
JustAsk http://justask.livingathome.de/qa/show/914397/
Auto iQ http://autoiq.autostrassenverkehr.de/qa/show/914397/
motor iQ http://motoriq.auto-motor-und-sport.de/qa/show/914397/
11880 iQ http://iq.www.11880.com/qa/show/914397/
T-Online iQ http://iq.t-online.de/qa/show/914397/
Freenet smart http://smart.freenet.de/qa/show/914397/

Um nun auf eine spezielle Frage bei Lycos iQ und seinen Partnern zu verweisen, muss also nur die Fragenummer bekannt sein. Daraus lässt sich dann automatisch die URL für alle Partnerprojekte erstellen. So werden die Mitglieder der Partnerseiten nicht ausgeschlossen und für die Blogger bedeutet es keinen wesentlichen Mehraufwand.
Der Aufwand ist bei der Benutzung des visuellen Editors (dem TinyMCE Editor) bei WordPress zwar etwas größer mit meiner Lösung, hält sich aber noch in Grenzen.

Mit dem TinyMCE-Editor von WordPress

Für WordPress 2.5 wurde anscheinend eine neue Version des TinyMCE-Editors verwand, sodass sich die Zahl der verfügbaren Plugins und/oder Hacks in deutlichen Grenzen hält.
Da ich es für relativ aufwendig und im Sinne von einfachen Updates auch unpraktikabel halte, direkt am Sourcecode des Editors herumzuspielen, wird ein Plugin benutzt.

Mit dem WordPress Plugin HTML Templates lassen sich kleine Vorlagen (Templates) in dem visuellen Editor einfügen, die auch Variablen (hier die Fragenummer) behandeln können.

Bislang hat das Plugin HTML Templates nur einen Nachteil: Eine gegebene Variable wird nur einmalig eingesetzt bei dem Aufruf in einem Beitrag. Bei meiner Anwendung benötige ich die Variable (die Nummer der Frage) aber einmal für Lycos iQ und dann noch weitere acht Mal für die unterschiedlichen Partner. Da sich PHP-Code mit dem Plugin und dem visuellen Editor nicht ausführen lässt, muss händisch die Nummer der Frage neunmal eingegeben werden.

Das Template ist relativ simpel gestrickt und kann im Admin-Bereich über “Verwalten > HTML Templates” eingetragen werden.
Um alleine die Nummer einzugeben, um auf eine Frage bei iQ und dessen Partner zu verlinken, benutze ich folgende Vorlage:

<p><a href="http://iq.lycos.de/qa/show/#fragenummer#/">zur Frage bei Lycos iQ</a> <small>(oder bei <a href="http://no-problem.brigitte.de/qa/show/#fragenummernp#/">no problem!</a>, <a href="http://besserwissen.pm-magazin.de/qa/show/#fragenummerpm#/">BesserWissen</a>, <a href="http://justask.livingathome.de/qa/show/#fragenummerja#/">JustAsk</a>, <a href="http://autoiq.autostrassenverkehr.de/qa/show/#fragenummerau#/">Auto iQ</a>, <a href="http://motoriq.auto-motor-und-sport.de/qa/show/#fragenummermo#/">motor iQ</a>, <a href="http://iq.www.11880.com/qa/show/#fragenummer11#/">11880 iQ</a>, <a href="http://iq.t-online.de/qa/show/#fragenummerto#/">T-Online iQ</a>, <a href="http://smart.freenet.de/qa/show/#fragenummerfr#/">Freenet smart</a>)</small></p>

Im Feld “Template Fields” sind also dann die neun unterschiedlichen Variablennamen einzutragen. Nämlich durch Kommata getrennt: "fragenummer, fragenummernp, fragenummerpm, fragenummerja, fragenummerau, fragenummermo, fragenummer11, fragenummerto, fragenummerfr"
 

Und so benutzt man es

Am rechten Ende der Werkzeugleiste des Editors befindet sich nun eine neue Schaltfläche, die ein großes T zeigt. Nach einem Klick auf dieses, wird eine Auswahl der verschiedenen Templates angeboten. Auf dem Screenshot hier ist nur die oben vorgestellte Vorlage installiert.

HTML-Templates-1

Und nach der Auswahl des Scripts findet man die neun auszufüllenden Felder. Wichtig ist, hier wirklich immer diegleiche Fragenummer einzugeben. Ein Kopieren der Nummer mit Strg+c und Einfügen mittels Strg+v erleichtert natürlich die Arbeit ungemein.

HTML-Templates2

Mit dem unteren rechten Button "Send to editor" wird die Vorlage nun wie gewünscht in den Beitrag kopiert. Und nach einem Klick auf "Publizieren" wird der Beitrag nun mit den Links veröffentlicht.

Ohne den visuellen Editor von WordPress (mit PHP)

Wesentlich einfacher funktioniert die Umsetzung ohne die Benutzung des visuellen Editors. Denn hier lässt sich mit Hilfe des Plugins Exec-PHP auch PHP-Code verwenden. Und dieser PHP-Code lässt sich mit dem Plugin AddQuicktag ebenfalls leicht einbinden in den Code-Editor von WordPress.

Als Quicktag gibt man folgendes Script ein, wobei die Beschriftung des Buttons natürlich den eigenen Wünschen entsprechen kann.

Als Starttag (auf das Leerzeichen am Ende achten!):
<?php $qnumber = 

Und dann als Endtag:
; ?>
<p><a href="http://iq.lycos.de/qa/show/<?php echo $qnumber; ?>/">zur Frage bei Lycos iQ</a> <small>(oder bei <a href="http://no-problem.brigitte.de/qa/show/<?php echo $qnumber; ?>/">no problem!</a>, <a href="http://besserwissen.pm-magazin.de/qa/show/<?php echo $qnumber; ?>/">BesserWissen</a>, <a href="http://justask.livingathome.de/qa/show/<?php echo $qnumber; ?>/">JustAsk</a>, <a href="http://autoiq.autostrassenverkehr.de/qa/show/<?php echo $qnumber; ?>/">Auto iQ</a>, <a href="http://motoriq.auto-motor-und-sport.de/qa/show/<?php echo $qnumber; ?>/">motor iQ</a>, <a href="http://iq.www.11880.com/qa/show/<?php echo $qnumber; ?>/">11880 iQ</a>, <a href="http://iq.t-online.de/qa/show/<?php echo $qnumber; ?>/">T-Online iQ</a>, <a href="http://smart.freenet.de/qa/show/<?php echo $qnumber; ?>/">Freenet smart</a>)</small></p>

Dieses PHP-Geschreibsel nimmt die Fragenummer als Variable und setzt sie entsprechend bei den neun Links immer ein. Es ist m.E. wesentlich komfortabler in der Benutzung: Man gibt in den Editor die Nummer der Frage ein, markiert diese mit Maus oder Tastatur und klickt auf den neuerstellten Button.
Dass daraufhin der Beitrag mit PHP-Code gefüllt wird, sollte einen nicht stören. Denn es funktioniert einfach und nach einem Klick auf "Publizieren" ist auch dieser Beitrag mit neun Links veröffentlicht.

Viel Spaß beim Ausprobieren!