Como hacer que Facebook incluya la imagen de tu articulo de Drupal al compartir

Al compartir un articulo de Drupal en Facebook, vemos como aparecen varias imagenes de la web para seleccionarla, y no aparece precisamente la que hemos incluido en el articulo que realmente es la que hace referencia a lo que queremos ilustrar.

Asi que añadiendo en el template.php de nuestro theme esta función hacemos que incluya la imagen subida junto al articulo en los meta-tags del head del articulo, en cambio si mostramos el frontpage indicaremos que la imagen a mostrar debe ser nuestro logo.

  1. function mytheme_preprocess_page(&$vars){
  2. global $base_url;
  3. $img = $base_url.base_path().path_to_theme()."/logo.png";
  4. if($vars['is_front'] != TRUE){
  5. if(isset($vars['node']->field_image['und'][0]['uri'])){
  6. $img = file_create_url($vars['node']->field_image['und'][0]['uri']);
  7. }
  8. }
  9. $element = array(
  10. '#tag' => 'meta',
  11. '#attributes' => array(
  12. "property" => "og:image",
  13. "content" => $img,
  14. ),
  15. );
  16. drupal_add_html_head($element,'facebook_share_image');
  17. }