WordPress Plugin: Open Graph Image Tag


Die aktuellen Änderungen von Facebook machen es notwendig.
Facebook generiert seit ein paar Tagen echte Einträge auf meiner Facebook-Wall, wenn ich auf irgendeiner Website den Like-Bottom drücke. Dabei werden auch diese kleinen Bilder mit generiert, die üblicherweise schon immer dann erschienen sind, wenn ich einen Link geteilt habe. Leider sucht sich der Algorithmus von Facebook immer das falsche Bild aus, es sei denn, es gibt im Header des HTML-Bereiches eine Angabe zum Open Graph Tag – „og:image“.

Ich hatte hier bereits vor einer ganzen Weile mal eine Lösung gepostet, hier mal der Code, wie daraus ein Plugin werden kann.
Es würde mich freuen, wenn sich dem mal jemand annehmen würde und ein vollwertiges Plugin draus macht.

Es setzt auf das Plugin get_the_image von Justin Tadlock, welches ebenfalls installiert werden muss. Beides zusammen gibt dann die Referenz über den Open-Graph-Image-Tag z.B. auf das erste Bild im Post oder das Artikelbild. Wer daraus ein leicht zu handhabendes Plugin macht, bekommt von mir ein persönliches Lob ausgesprochen, diese falschen Bild in meinem Stream nerven mich doch zu sehr! 🙂


<?php
/*
Plugin Name: Open Graph Image Tag
Plugin URI: http://koffeinbetriebenes.net/
Description: Fügt einen META-Tags og:image in den Header ein. Für die Ausgabe des richtigen Bildes im automatisierten Facebook-Sharing. Benötigt das Plugin "get_the_image" von Justin Tadlock
Version: 0.1
Author: Steffen Peschel, Du
Author URI: http://steffenpeschel.de/
Min WP Version: 3.0
Max WP Version: 3.0
*/

// Hier URL zum Standardbild eingeben
$URL_to_logo = "";

// Filter im Plugin 'get_the_image'
if ( function_exists( 'get_the_image' ) ) add_filter( 'get_the_image', 'sp_overwrite_image' );
function sp_overwrite_image ($image) {
	$pattern = '/src="([^"]*)"/';
	preg_match($pattern, $image, $matches);
	$src = $matches[1];
	unset($matches);
return $src;
}

// Display og:img <meta> tag
if(!is_admin()) add_action ('wp_head', 'sp_og_img');
function sp_og_img() {
	global $URL_to_logo;
	if (is_single()) {
		global $posts;
		if ( function_exists( 'get_the_image' ) ) {
			$img_url = get_the_image( array( 'echo' => false, 'size' => 'medium', 'default_image' => $URL_to_logo ) );
		} else { 
		$img_url = $URL_to_logo; 
		}
	} else { 
		$img_url = $URL_to_logo; 
	} 
echo "\n<meta property=\"og:image\" content=\"" . $img_url . "\" />\n";
}
?>

p.s. Wenn es das Plugin für diese Funktion schon gibt, auch gut. Ich verlinke das dann gern.

WordPress Plugin erweitert den Workflow für Kommentare

Auf WPCandy wurde jetzt das WordPress Plugin Highlighter vorgestellt, welches die Kommentarfunktion vom Textende direkt in den Text rückt. Eine ähnliche Idee hatte ich auch schon in meinem Artikel „Artikel kollaborativ erstellen“ beschrieben.

Markiert man mit dem Courser einen Text oder auch nur ein Wort auf der Seite, wird der Link “ergänzen” direkt neben dem markiertem Text eingeblendet. Klickt man diesen wird der markierte Text direkt als Zitat in das Kommentarformular kopiert und man hat sich superschnell auf eine Stelle im text bezogen.

Highlighter Overview from Highlighter on Vimeo.

Die Art der Einbindung von Twitter und Facebook halte ich ebenfalls für sehr anwenderfreundlich. Was mir bei der Umsetzung der Kommentarfunktion merkwürdig erscheint, ist die fehlende Intergration in die vorhandene Kommentarfunktion von WordPress. Die Highlight-Kommentare werden getrennt von den eigentlichgen WordPress-kommentaren verarbietet & dargestellt. Die Idee ist gut, aber ich würde mir das anderes wünschen.

Das jQuery Plugin Qicksand in Aktion

Anfang des Monats hatte ich drei Möglichkeiten vorgestellt das Sortieren von Inhalten mit jQuery zu animieren. Einer der drei, das jQuery Plugin Quicksand, habe ich jetzt selbst benutzt. Zum Einsatz kommt die Variante in welcher die Inhalte nicht nur neu sortiert werden, sondern vorher mittels jQuery-Funktion get() noch neu geladen werden. Durch das Nachladen konnte ich das Plugin komplett auf die normale WordPress Struktur anwenden. Animiert wird also komplett über Startseite, Archivseiten für Kategorien und Tags sowie die Single-Ansicht eines Artikels.

Leider läuft die Animation in meinem Firefox nur ruckelig, sehr viel schöner sieht es im Chromium Browser aus.

WordPress: Facebook das richtige Bild für “geteilte” Artikel mitteilen

Nachdem ich jetzt schon mehrmals darüber geschimpft habe, dass mir beim automatischen Artikel posten die falschen Bilder eingefügt werden, habe ich mich jetzt endlich mal damit beschäftigt und nachgelsesen, was man machen muss. Es ist relativ einfach, für Facebook gibt es einen extra meta-tag, der im Header eine Bildquelle angibt.


<meta property="og:image" content="<?php echo $img_url; ?>" />

Hier mein Lösungsansatz, wie ich das in WordPress umsetze.
Für die Wahl der Bildquelle nehme ich mir das Plugin get_the_image von Justin Tadlock zu Hilfe. Über die Funktion get_the_image(); rufe ich das Plugin in meinem Theme auf. Das Plugin überprüft automatisch Custom Fields, Artkelbild oder auch den Artikel selbst nach Bildern, je nach Parametern wird eine dieser Bildquelle gewählt.

Auf Facebook wird in der Regel entweder die Startseite oder ein einzelner Artikel verlinkt. Also frage ich dies zunächst ab. Für die Startseite kann ich einfach ein generelles Bild, z.B. ein Logo, festlegen.


<?php
   if (is_single()) {
      global $posts; // da ausserhalb der Loop
      if ( function_exists( 'get_the_image' ) ) {
         $img_url = get_the_image( array( ... ) );
      }
   } else { 
      $img_url = get_bloginfo('template_url').'/g/fbdefault.jpg'; 
   } ?>
<meta property="og:image" content="<?php echo $img_url; ?>" />

WordPress: Facebook das richtige Bild für “geteilte” Artikel mitteilen weiterlesen

WordPress: Lightbox Effekte ohne Plugin einbinden

Es muss nicht immer ein Plugin sein, um den Funktionsumfang von WordPress zu erweitern. Simon stellt das jQuery Plugin prettyPhoto vor und zeigt wie man es z.B. über die functions.php in das Theme einbindet. Neben einzelnen Bildern kann man mit prettyPhoto auch Gallerien, Videos, Flash, externe Sites oder auch einzelne Contentblöcke den richtigen Rahmen verpassen.

neue Blogkommentare per Mail erhalten

Um eine Diskussion in den Kommentaren eines Blogbeitrages verfolgen zu können und automatisch über neue Kommentare informiert zu werden kann man entweder den Kommentarfeed abonieren oder aber das Blog ermöglicht das Abonieren per Mail. Subscribe to Comments heißt das ganze und da man ja nicht gern Teil von Spammerei sein möchte bzw. nicht sollte gibt es “Subscribe to Comments” mit Double-Opt-In Prüfung.

Webhooks für WordPress

Ich bin gerade über HookPress gestolpert, ein Plugin um WordPress für Webhooks zu öffnen. WordPress bietet ja von Haus aus Hooks und Filter an, die Idee hinter Webhooks für WordPress ist es, Scripte, die irgendwo im Web liegen und in was auch immer für einer Scriptsprache geschrieben sind, ebenfalls eingebunden werden können.

Als Beispiel werden Push-Notification genannt. Ich sehe darin vor allem die Möglichkeit schnell Scripte einzubinden und diese dann eben nicht zur eigenen Last zu machen. Ebenfalls eine interessante Anwendung ist es, das eigene Systems so für andere, also einer Community, öffnen zu können.