Drupal 7: Facebook Share Thumbnail und Titel

Autor: Sven am Wed, 04.04.2012 - 13:07

Auf vielen Seiten ist der Facebook Share Button zu finden. Das größte Problem hierbei ist, dass nicht das korrekte Bild (og:image) und der Titel (og:title) angezeigt werden und dieses immer von Hand angepasst werden muss, so dass es den Anforderungen entspricht. In Drupal 7 ist dieses ganz einfach über die template.php des Themes zu lösen:

/**
 * Implements hook_preprocess_page().
 */
function THEMENAME_preprocess_page(&$vars) {
  global $base_url;

  // Facebook share thumbnail
  $img = $base_url . base_path() . path_to_theme() . '/images/logo.png';
  if (!$vars['is_front']) {
    if (isset($vars['node']->field_images['und'][0]['uri'])) { // Place correct field name
      $img = file_create_url($vars['node']->field_images['und'][0]['uri']); // Place correct field name
    }
  }

  // Add image
  $element = array(
    '#tag' => 'meta',
    '#attributes' => array(
      'property' => 'og:image',
      'content' => $img,
    ),
  );
  drupal_add_html_head($element, 'facebook_share_image');

  // Add title
  $element = array(
    '#tag' => 'meta',
    '#attributes' => array(
      'property' => 'og:title',
      'content' => $vars['node']->title ? $vars['node']->title : variable_get('site_name', ''),
    ),
  );
  drupal_add_html_head($element, 'facebook_share_title');

  // Add type
  $element = array(
    '#tag' => 'meta',
    '#attributes' => array(
      'property' => 'og:type',
      'content' => $vars['node']->type ? $vars['node']->type : 'page',
    ),
  );
  drupal_add_html_head($element, 'facebook_share_type');
}

Das Ganze lässt sich dann mit den Developer Tools von Facebook wunderbar testen.

Wer das Ganze nicht von Hand einrichten möchte kann natürlich auch das Metatag Modul inklusive des OG-Erweiterungsmoduls (Open Graph meta tags) verwenden.