WordPress: Die eigene Domain als ShortURL nutzen

Gerade diejenigen unter euch, die ihre Artikel über Twitter oder andere Soziale-Netzwerke bekannt machen, greifen sicherlich häufig zu Diensten wie tinyurl.com oder bit.ly zurück um den ansonsten zu langen Hyperlinks noch etwas Text beizustellen und sie somit interessant zu machen. Doch wenn ihr WordPress nutzt, könnt ihr darauf gut und gerne verzichten. Hier zeige ich euch wie.

Umleiten: Ja – Duplicate-Content: Nein

Die folgende Funktion macht sich die WordPress-eigene URL-Struktur zu nutze. Links auf Posts lauten eigentlich immer http://example.com/index.php?p=postID – die meisten unter euch werden jedoch SEO-freundlichere Links verwenden. Trotzdem bleiben die Posts über den ursprünglichen Weg erreichbar und werden sogar permanent umgeleitet – es gibt also keinen bösen Duplicate-Content. Packt den Code-Schnipsel einfach in eure functions.php.

<?php
function shorturl(){
    global $post;
    is_single() == true ? $out = get_bloginfo('url')."/".$post->ID : $out = get_bloginfo('url')."/";
    echo $out;
}
 
/* Beispiel-Aufruf */
/* <a href="<?php shorturl(); ?>">Nutze den kurzen Link: <?php shorturl(); ?></a> */
?>
Als Textdatei öffnen | since1985de_7b29ee40.txt | 311 Byte

Die halbe Miete

Da http://example.com/index.php?p=postID auch nicht wirklich kurz ist verwenden wir noch eine mod_rewrite-Regel mit der wir das durch die Funktion erzeugte und wesentlich kürzere http://example.com/postID auf besagte URL umleiten. Dazu müsst ihr eure .htaccess um folgende Regeln erweitern.

RewriteEngine On
RewriteRule ^([0-9]+[0-9])$ /index.php?p=$1 [L]
Als Textdatei öffnen | since1985de_3411f4de.txt | 64 Byte

21. Dezember 2009

Twitter: Reguläre Ausdrücke in PHP für die volle Integration von Tweets

Da ich nun schon von mehreren Leuten nach den Regulären Ausdrücken (RegEx auf de.wikipedia.org) zum ersetzen von #hashtag und @username in Twitter-Statusnachrichten gefragt wurde, veröffentliche ich sie hier. Zusätzlich gibt es noch die Regulären Ausdrücke um normale Hyperlinks klickbar zu machen.

Wer mehr zum Thema wissen will

Bei Fragen oder Problemen könnt ihr gerne einen Kommentar schreiben - weitere Erklärungen zu den Regulären Ausdrücken erspar ich mir an dieser Stelle und verweise auf die Webseite devmag.net auf der es eine ausführliche Dokumentation zum Thema RegEx gibt.

Der Code

<?php
// Hyperlinks klickbar machen
$pattern = "/(^|\s)(([a-zA-Z]+:\/\/)([a-z][a-z0-9_\..-]*[a-z]{2,6})([a-zA-Z0-9\/*-?&%]*))/i";
$replace = "$1<a href=\"$2\" class=\"twitter-link\" rel=\"external\">$2</a>";
$str = preg_replace($pattern, $replace, $str);
$pattern = "/(^|\s)(www\.([a-z][a-z0-9_\..-]*[a-z]{2,6})([a-zA-Z0-9\/*-?&%]*))/i";
$replace = "$1<a href=\"http://$2\" class=\"twitter-link\" rel=\"external\">$2</a>";
$str = preg_replace($pattern, $replace, $str);
 
// #hashtags klickbar machen und auf Twitter-Suche verweisen
$pattern = "/(^|\s)&#35;(\w*)/i";
$replace = "$1<a href=\"http://twitter.com/search?q=$2\" class=\"twitter-hashtag\" rel=\"external\">#$2</a>";
$str = preg_replace($pattern, $replace, $str);
 
// @username klickbar machen und auf Twitter-Profil verweisen
$pattern = "/(^|\s)@(\w*)/i";
$replace = "$1<a href=\"http://twitter.com/$2\" class=\"twitter-user\" rel=\"external\">@$2</a>";
$str = preg_replace($pattern, $replace, $str);
?>
Als Textdatei öffnen | since1985de_87f5f37a.txt | 1011 Byte

6. Dezember 2009