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

PHP: Übermäßig lange Wörter im Text-String trennen

Sicherlich kennt ihr die Probleme die sich ergeben wenn man dem Benutzer erlaubt Text auf der Webseite zu hinterlassen. Sei es ein Kommentar, ein Beitrag im Forum oder ... was auch immer! Solche Texte können - auch wenn sie kein Spam sind - unerwünschte Ergebnisse liefern. Beispielsweise gibt es Benutzer, die zum Spaß alle Worte eines Satzes zusammen schreiben und so das komplette Layout zerstören.

Eine kleine PHP-Funktion bietet hier Abhilfe. Wörter ab einer bestimmten Länge werden einfach durch ein Leerzeichen getrennt und somit zu zwei "Wörtern".

Der Code

<?php
function shortenWords($text, $laenge) {
	$woerter = explode(" ", $text);
	// alle Wörter prüfen
	for($i = 0; $i <= count($woerter); $i++)
	{
		// Wort zu lang?
		if(strlen($woerter[$i]) >= $laenge)
		{
			// Wort teilen
			$woerter[$i] = chunk_split($woerter[$i], $laenge, " ");
		}
	$text = implode(" ", $woerter);
	}
return $text;
}
shortenWords($nachricht, 255);
?>
Als Textdatei öffnen | since1985de_f092de43.txt | 423 Byte

6. Dezember 2009

  • Eingeordnet unter: PHP
  • eine Antwort

PHP: Einfacher Weg um Text-Strings zu kürzen ohne Wörter zu beschneiden

Natürlich gibt es viele Wege um an ein bestimmtest Ziel zu kommen. So auch, wenn man einen Text-String in PHP ab einer bestimmten Anzahl von Zeichen kürzen will ohne dabei die Wörter abzuschneiden. Ich habe einige schreckliche Beispiele gesehen – lange Funktionen die es unnötig kompliziert machen. Dabei kann es doch so einfach sein!

Wenn es mal etwas kürzer sein soll

Ich habe vor einiger Zeit ein Snippet entdeckt, dass quasi mit einer Zeile Code auskommt. Der Text $text wird nach $laenge abgeschnitten, ohne dabei die Wörter zu beschneiden. Außerdem kann eine Startposition $start festgelegt werden.

Zu beachten sei hierbei jedoch, dass die Verwendung dieses Codes nur bei reinem Text – ohne HTML-Tags oder ähnlichem – Sinn macht, da Tags nicht geschlossen werden und somit fehlerhafter HTML-Code produziert werden könnte.

Der Code

<?php
	$start = 0;
	$laenge = 120;
	$text =  preg_replace("/[^ ]*$/", '', substr($text, $start, $laenge));
?>
Als Textdatei öffnen | since1985de_6f55dd49.txt | 155 Byte

6. Dezember 2009

  • Eingeordnet unter: PHP
  • keine Antworten