Open Graph de Facebook: insertarlos en WordPress

Facebook Open Graph

 

Hola mundo! Aprovechando que hoy mismo he visto por cierta página web que aun hay gente que no sabe añadir los Open Graph de Facebook a un blog WordPress he decidido crear una pequeña guía de como hacerlo. Explicaré dos maneras de hacerlo, una será mediante un plugin, WordPress SEO by Yoast, y la otra incluyendo un poco de código PHP.

Para los que todabía no lo saben, los Open Graph sirven para definir los meta datos de un compartir, lo que viene siendo decir a Facebook el título, url, imagen y descripción que quieres que se vean al compartir. Ahora que todo sabemos para lo que sirven pasemos a aprender como insertarlos.

Open Graph con WordPress SEO by Yoast

Si tiene que ver con el SEO posiblemente puedas conseguirlo con este plugin, por algo está considerado el mejor plugin. Puedes descargarlo desde este enlace y luego instalarlo o instalarlo directamente desde tu panel de control buscando “Wordpress SEO by Yoast”. Los pasos a seguir una vez instalado son fáciles, tan fáciles como ir a “SEO” en el panel de control, seleccionar “Social” del submenú y completar el formulario de la pestaña de Facebook(completa la de Twitter y Google+ para conseguir algo similar a esto pero en estas redes).

Código PHP

Esta forma de insertar Open Graph en WordPress con código PHP es algo más laboriosa pero como todo tiene sus ventajas. El hacer uso de código propio en la mayoría de casos hará que consigamos un código más limpio lo cual vale oro según como avanzan los buscadores. Dejando de lado debates sobre SEO pasemos a ver el código, el cual he conseguido en la web de dariobf.

//Agregamos Open Graph en los Language Attributes
function add_opengraph_doctype( $output ) {
        return $output . ' xmlns:og="https://opengraphprotocol.org/schema/" xmlns:fb="https://www.facebook.com/2008/fbml"';
    }
add_filter('language_attributes', 'add_opengraph_doctype');
 
//Añadimos la información Open Graph
function insert_fb_in_head() {
    global $post;
    if ( !is_singular()) //Si no es un post o página
        return;
        echo '<meta property="fb:admins" content="ID_USUARIO"/>';
        echo '<meta property="og:title" content="' . get_the_title() . '"/>';
        echo '<meta property="og:type" content="article"/>';
        echo '<meta property="og:url" content="' . get_permalink() . '"/>';
        echo '<meta property="og:site_name" content="NOMBRE_WEBSITE"/>';
    if(!has_post_thumbnail( $post->ID )) { //La entrada no tiene imagen destacada, utiliza una imagen predeterminada
        $default_image="URL_IMAGEN_DEFECTO"; //Aquí tienes que poner la ruta de la imagen prefeterminada que se mostrará.
        echo '<meta property="og:image" content="' . $default_image . '"/>';
    }
    else{
        $thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
        echo '<meta property="og:image" content="' . esc_attr( $thumbnail_src[0] ) . '"/>';
    }
    echo "
";
}
add_action( 'wp_head', 'insert_fb_in_head', 5 );

Este código tendrás que adaptarlo y luego añadirlo a tu archivo functions.php que puedes editar desde la pestaña “Apariencia” y “Editar”. Las ediciones necesarias son las siguientes.

  • ID_USUARIO: aquí tienes que colocar el id de tu usuario
  • NOMBRE_WEBSITE: el nombre de tu página web
  • URL_IMAGEN_DEFECTO: en caso de no existir una imagen en la entrada esta se usará por defecto.

En caso de error o dudas podéis comentármelas usando los comentarios. Un saludo!

Ingeniero industrial y administrador de esta página web. En su espacio virtual, Axl comparte de manera relajada y accesible su interés por temas como negocios, lean manufacturing e inteligencia empresarial. Explora con él ideas prácticas y descubre cómo aplicarlas en tu propio camino profesional.
Entradas creadas 110

17 pensamientos en “Open Graph de Facebook: insertarlos en WordPress

  1. y posterior a colocar el codigo en functions.php, que hago?, lo llamo del header.php?, como lo llamo?, o solo voy a facebook debugger?

          1. en un post, o page no hay problemas, me imprime los meta, pero en el index no imprime los meta.

  2. Me pasa igual que a Sebastian, ningun plugin sirve ni el WordPress SEO, ni el oficial de FB. Intente de forma manual agregando codigo en functions.php, en header.php y sigue mostrando la imagen del logo que tengo en la pagina junto con la descripción de la misma y no el contenido del post ni imagen destacada. El tema que uso es AccessPress Parallax la página http://graficaitinerante.org/ ¿Alguien pudo solucionarlo?

    1. Hola Yidam,

      si a pesar de agregar el código a mano correctamente te sigue apareciendo la imagen que no es puede ser a causa del cache. También puede ser que el theme no use la misma función para generar la url de la imagen destacada y por eso no funcionen bien los plugins.

      Yo de ti probaría a quitar el theme y mirar no vaya a ser que sea el causante!

      Saludos

      1. Que tal Angel,

        Gracias por tu respuesta, te comento que ya pude solucionar el inconveniente. En definitiva comprobé que con otra plantilla si funcionaba, como ya tengo avanzado mi proyecto y corto de tiempo no puedo cambiar de plantilla, asi que lo que hice fue cargar el Yoast SEO para WP y después me fui a la Open Graph Object Debugger de FB para developers y poniendo la dirección del post que queria compartir y iendo a la opción “Fetch new scrape information” funcionó. Tuve que hacer esos pasos para todas los post, es algo laborioso pero por lo menos ya muestra la info y la imagen correcta. No se ha que se deba, estoy haciendo pruebas e investigando que es lo que puede ocasionar el fallo, si encuentro algo útil lo comento.

        Muchas Gracias

  3. Haga lo que haga, usando el plug in que use, es imposible hacer que aparezca la información cuando la quiero compartir en facebook, he probado mil formas pero no pasa nada, ya estoy algo frustrado porque nunca había tenido este problema, me podrías ayudar de alguna forma?
    saludos y muchas gracias!

      1. Si estimado, pero en serio que no pasa nada, me sale el error ;

        Object at URL ‘http://www.bosquepatagonico.cl/’ of type ‘website’ is invalid because a required property ‘og:title’ of type ‘string’ was not provided.

        Y si entras al sitio y revisas el inspector de código, verás que está todo en orden 🙁
        Realmente necesito ayuda, llevo como 3 días averiguando y probando.
        Muchas gracias!

        1. Efectivamente está en orden, pero en mi caso no se muestra nada más que la url al compartir. Diría que el problema es la plantilla puesto que nunca me ha pasado.

          Si puedes cambia la plantilla, si es un diseño tuyo y no puedes tendrás que revisar el código de principio a fin puesto que parece que algo interfiere con el Open Graph.

          Saludos

  4. Hola, gracias por la info! Te hago una consulta, una vez editado el código, en que parte de
    functions.php lo pego? Cuando termina el codigo, al princio, o es en alguna parte específica?
    Muchas gracias!

    1. Al final, pero recuerda hacer una copia de seguridad del functions.php original! El código tiene su tiempo y si te da error podrás repararlo.

      Si te da error dímelo para ofrecerte una alternativa!

      Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Publicaciones relacionadas