Jetpack FB 分享修改 og:image

很多人應該都有安裝 Jetpack …

因為使用很方便,只要安裝之後啟用,接著在後台打開就好了

但是有一個功能,分享…有些設定沒有那麼人性化

好比 FB 分享功能…

當今天我一篇文章裡面有好幾張圖片,而且沒有設定特色圖片的情況下

當我點下FB分享功能,預覽的小圖片卻是我的最後一張圖片 (看圖片解析)

往往不是我要的第一張圖片,所以因此很懊惱

找了很多網站,但是往往答案都不是我想要的…

所以問了朋友,也很感謝朋友大力的幫忙,所以終於順利研究成功了 !!

在自己的風格目錄檔底下開啟 functions.php,並輸入以下程式碼

function get_feature_image(){
global $post, $posts;
$first_img = '';
if ( has_post_thumbnail() ) {
$first_img = wp_get_attachment_url( get_post_thumbnail_id() );
} else {
ob_start();
ob_end_clean();
$output = preg_match('/< *img[^>]*src *=*["\']?([^"\']*)/i', $post->post_content, $matches);
$first_img = $matches[1];
}
return $first_img;
}
function fb_home_image( $tags ) {
if ( is_home() || is_front_page() ) {
// Remove the default blank image added by Jetpack
unset( $tags['og:image'] ); unset( $tags['og:description'] );
$fb_home_img = get_bloginfo('template_directory').'/img/default.jpg';
$tags['og:image'] = esc_url( $fb_home_img );
$tags['og:description'] = get_bloginfo('description');
}elseif(is_single( ) ){
unset( $tags['og:image'] );
$tags['og:image'] = get_feature_image();
}
return $tags;
}
add_filter( 'jetpack_open_graph_tags', 'fb_home_image' );

主就要是取消 Jetpack 自動 og:image 命名,並自己抓取文章第一張圖片來使用…

如果修改完成,看程式碼還沒變化時…如有安裝 WP-Cahe 記得先刪除快取

如果點選分享還是沒有改變圖案的話,可以使用 Facebook Debugger 工具

進去網站之後,輸入網址…就會看到抓取什麼資料

如果想要重新抓取,就點選 Fetch new scrape information 抓取新資料就可以了 🙂

主要參考 香腸烤魷魚 & 樂在設計 語法….

  • 你救了我一命:) 謝謝你

  • 請問我搬家到WP後,特色圖片一開始都自動亂抓.. 不是抓第一張

    也可以改程式讓他全部重抓一次嗎? 自己手動重設到快瘋了 Orz

    • 如果已經抓完的,可能無法..

      除非自己手動用 Facebook Debugger 去更新讓 FB自動重抓