Facebook プラグインを使ったときの OGP 画像設定

先日、WordPress 用 Facebook プラグインを使ったときの OGP 画像設定のために、強引に SQL でアイキャッチ画像を設定する方法を書きました。 しかし、わざわざアイキャッチ画像を設定しなくても Facebook プラグインのカスタムフィルタを使用すれば OGP 画像を設定できることに後から気づきました。

方法はプラグインのサポートフォーラムで紹介されていますが、以下のように fb_meta_tags フィルタを使用すればよいのです。

function my_ogp_filter( $meta_tags ) {
  $meta_tags['http://ogp.me/ns#image'][] = array(
    'url' => 'http://example.com/wp-content/uploads/2012/12/logo200x200.png',
    'type' => 'image/png',
    'width' => 200,
    'height' => 200
  );
  return $meta_tags;
}

add_filter( 'fb_meta_tags', 'my_ogp_filter' );

ただし、フォーラムで「add a fallback image」と書かれていますが、単純に画像もう 1枚分の Meta タグを加えているだけなので、既にアイキャッチ画像が設定されているポストでは OGP 画像設定用タグ (og:image 関連) が 2回含まれることになります。 それでも Facebook 開発者ページを見ると「You may include multiple og:image tags to associate multiple images with your page.」と書かれているので問題ないようです。