Cuando compartimos un enlace en facebbok, éste automáticamente mira que imágenes hay en la web y nos da a elegir. A veces no estamos muy de acuerdo con estas imágenes, pero no tenemos más remedio que aceptarlo. Con este simple truco podremos hacer que las imágenes sean por ejemplo, las imágenes destacadas de nuestas publicaciones, ya sean páginas o artículo.

¿Y si es la página principal? le pondremos la página que queramos. Todo esto añadiendo este código en el archivo header.php antes de la etiqueta wp_head()

/////////////////ACTUALIZACIÓN 3-2-2021///////////////////

No funciona este código, para realizar esta acción recomiendo usar el plugin SEO YOAST, ellí en las pestañas relativas al contenido social de cada artículo o página se puede seleccionar qué imagen compartir en redes sociales.

/////////////////ACTUALIZACIÓN 3-2-2021///////////////////

asignar-imagen-facebook-al-compartir

El código es el siguiente:

<!-- Inicio compartir en FB con imagenes propias -->
<?php
	$thumb = get_post_meta($post->ID,'_thumbnail_id',false);
	$thumb = wp_get_attachment_image_src($thumb[0], false);
	$thumb = $thumb[0];
	$default_img = 'https://servisplus.es/imagenes/imagen_por_defecto.png';
 
	?>
 
<?php if(is_single() || is_page()) { ?>
	<meta property="og:type" content="article" />
	<meta property="og:title" content="<?php single_post_title(''); ?>" />
	<meta property="og:description" content="<?php 
	while(have_posts()):the_post();
	$out_excerpt = str_replace(array("\r\n", "\r", "\n"), "", get_the_excerpt());
	echo apply_filters('the_excerpt_rss', $out_excerpt);
	endwhile; 	?>" />
	<meta property="og:url" content="<?php the_permalink(); ?>"/>
	<meta property="og:image" content="<?php if ( $thumb[0] == null ) { echo $default_img; } else { echo $thumb; } ?>" />
<?php  } else { ?>
	<meta property="og:type" content="article" />
   <meta property="og:title" content="<?php bloginfo('name'); ?>" />
	<meta property="og:url" content="<?php bloginfo('url'); ?>"/>
	<meta property="og:description" content="<?php bloginfo('description'); ?>" />
    <meta property="og:image" content="<?php  if ( $thumb[0] == null ) { echo $default_img; } else { echo $thumb; } ?>" />
<?php  }  ?>
<!-- Fin compartir en FB con imagenes propias -->

Ojo, primero mirará si hay una imagen destacada
Luego mirará el resto de imágenes de la página/artículo
Por último mirará la imagen por defecto (definida en la línea 6 del código)

Truco extra: ¿Cómo saber que imágenes o información tiene asociados la cache de Facebook?

https://developers.facebook.com/tools/debug/og/object/

En este enlace podréis hacer pruebas e incluso limpiar o hacer que Facebook vuelva a refrescar las imágenes.