Home / functions.php / Facebook open graph snippet to set default image
  • How to Facebook open graph snippet to set default image


    Adding this snippet to the functions.php of your wordpress theme will allow you to specify Facebook Open Graph information on your WordPress posts. Allowing you to specify which image should be displayed when sharing your article on Facebook among other things.

    Just set your ADMIN_ID by going to http://graph.facebook.com/yourfacebookusername, and modify the URL of your site's logo. Then you can check that Facebook is getting all the correct information by going to https://developers.facebook.com/tools/debug ( click code to copy )

    wordpress snippet : PHP

    function diww_facebook_image() {
    		echo '<meta property="fb:admins" content="ADMIN_ID" />';
    		echo '<meta property="og:title" content="' . get_the_title() . '" />';
    		echo '<meta property="og:site_name" content="' . get_bloginfo('name') . '" />';
    	global $post;
    	if ( is_singular() ) { // only if a single post or page
    		echo '<meta property="og:type" content="article" />';
    		echo '<meta property="og:url" content="' . get_permalink() . '" />';
    	if (has_post_thumbnail( $post->ID )) { // use featured image if there is one
    		$feat_image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'large' );
    		echo '<meta property="og:image" content="' . esc_attr( $feat_image[0] ) . '" />';
    	 }else{ // use site logo in case no featured image
    		echo '<meta property="og:image" content="http://yourdomain.com/logo.png" />';
    	if ( is_home() ) { // for homepage only
    		echo '<meta property="og:type" content="website" />';
    		echo '<meta property="og:url" content="' . get_bloginfo('url') . '" />';
    		echo '<meta property="og:image" content="http://yourdomain.com/logo.png" />';
    add_action( 'wp_head', 'diww_facebook_image' );
  • Dave, there was a brief period when I was sharing my posts and Facebook was running an image from my ads, then telling me it was not allowed! This was occurring even when I had a non-ad image at the top of the post. It worked itself out, but this snippet could come in handy to select the desired image.