我们在使用WordPress建站的过程中,经常需要给文章添加社交分享的功能。 AddToAny Share Buttons 是一款很不错的文章分享类型的WordPress插件,但是在使用的过程中,我们发现当把文章分享到Facebook的过程当中,并没有获取到文章标题,而是将网站的链接分享到了Facebook。下面我们来看一下解决办法,解决的原理是:在WordPress网站的头部加入Open Graph Meta Info。
切换到主题目录,打开functions.php文件,加入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | //Adding the Open Graph in the Language Attributes function add_opengraph_doctype( $output ) { return $output . ' xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"'; } add_filter('language_attributes', 'add_opengraph_doctype'); //Lets add Open Graph Meta Info function insert_fb_in_head() { global $post; if ( !is_singular()) //if it is not a post or a page return; echo '<meta property="fb:admins" content="1721535331409376"/>'; 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="Eris"/>'; if(!has_post_thumbnail( $post->ID )) { //the post does not have featured image, use a default image $default_image="https://www.91wordpress.com/wp-content/uploads/2015/07/logo.png"; //replace this with a default image on your server or an image in your media library 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 ); |
上面的代码中需要添加您自己的facebook的app_id,申请的链接如下:
https://developers.facebook.com/apps
添加完成以后您可以通过下面的链接进行测试,Debugger