先日、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.」と書かれているので問題ないようです。