Hacer que tus posts se vean mejor cuando se comparten en Facebook

Wordpress Logo

Este código sirve para que cuando un usuario comparte tu artículo en Facebook, se vea lo mejor posible, con imagen relacionada o imagen por defecto, enlace hacia web del autor, título, descripción, etc.

Solo debes colocar el siguiente código en el archivo header.php de tu theme antes de la etiqueta < ?php wp_head(); ?> :

[php]
<?php
$thumb = get_post_meta($post->ID,’_thumbnail_id’,false);
$thumb = wp_get_attachment_image_src($thumb[0], false);
$thumb = $thumb[0];
?>

<?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 catch_that_image(); } 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 catch_that_image(); } else { echo $thumb; } ?>" />
<?php } ?>
[/php]
Referencias acerca de OpenGraph

Y luego pegar el siguiente código en el archivo functions.php
[php]
function catch_that_image() {
global $post, $posts;
$first_img = ”;
ob_start();
ob_end_clean();
$output = preg_match_all(‘/<img.+src=[\’"]([^\’"]+)[\’"].*>/i’, $post->post_content, $matches);
$first_img = $matches [1] [0];

if(empty($first_img)){ //Defines a default image
$first_img = get_bloginfo(‘stylesheet_directory’)."/images/default_icon.jpg";
}
return $first_img;
}
[/php]

Recomendado