WordPress Shortlink über goo.gl im Artikel anzeigen

wordpress-shortlink-goo-gl-url-shortener

Innerhalb von WordPress gibt es die Möglichkeit einen sogenannten Shortlink auszugeben. Der Shortlink ist eine kurze URL zum Artikel und soll das Senden von Trackbacks und Links (z.B. über Twitter) erleichtern. Über eine Funktion kann der Shortlink im Theme angezeigt werden um Besuchern das Weiterempfehlen eines Artikels zu erleichtern. Normalerweise generiert der Shortcode innerhalb von WordPress allerdings nur die normale URL sowie die ID des aktuellen Beitrags. Praktischer ist es wenn man Googles URL-Kürzungs-Dienst goo.gl verwendet.

Trainings für Unternehmen und Privatpersonen

Wir machen dich fit für die Zukunft des Web! In unseren Seminaren und Workshops lernst du wie moderne Websites entstehen.

Infos zu Inhouse-Seminaren
Infos zu öffentlichen Terminen

Shortlink anzeigen

Zunächst müssen wir den normalen Shortlink von WordPress in unseren Artikel integrieren. Öffnet die single.php (alternativ auch index.php oder ein anderes Template) und fügt an beliebiger Stelle folgendes Code-Snippet ein.

<?php if (function_exists('wp_get_shortlink')) { ?>
 Shortlink: <input type='text' value='<?php echo wp_get_shortlink(get_the_ID()); ?>' onclick='this.focus(); this.select();' />
<?php } ?>

Es wird ein Input-Feld erstellt in welchem der Shortlink angezeigt wird. Per Klick wird der Inhalt markiert, so dass der Besucher den Link schneller kopieren kann.

Google URL-Shortener verwenden

Um nun Googles URL-Shortener goo.gl anstelle von WordPress zu verwenden fügt einfach folgenden Code in Eure functions.php ein.

// WordPress Shortlinks mit Goo.gl ersetzen

function googl_shortlink($url, $post_id) {
	global $post;
	if (!$post_id && $post) $post_id = $post->ID;

	if ($post->post_status != 'publish')
		return "";

	$shortlink = get_post_meta($post_id, '_googl_shortlink', true);
	if ($shortlink)
		return $shortlink;

	$permalink = get_permalink($post_id);

	$http = new WP_Http();
	$headers = array('Content-Type' => 'application/json');
	$result = $http->request('https://www.googleapis.com/urlshortener/v1/url', array( 'method' => 'POST', 'body' => '{"longUrl": "' . $permalink . '"}', 'headers' => $headers));
	$result = json_decode($result['body']);
	$shortlink = $result->id;

	if ($shortlink) {
		add_post_meta($post_id, '_googl_shortlink', $shortlink, true);
		return $shortlink;
	}
	else {
		return $url;
	}
}

add_filter('get_shortlink', 'googl_shortlink', 9, 2);

Der Shortlink von WordPress wird nun ersetzt und ab sofort wird innerhalb des Input-Feldes der Google-Link angezeigt.

Das Shortlink-Snippet stammt von Otto on WordPress; die goo.gl Umsetzung von Konstantin