今朝参加した勉強会でその存在をきちんと知ることになったOGP(Open Graph Protocol)。遅ればせながら当サイトにも実装してみるか、とググってみたところ『WP-OGP』というその名もズバリなプラグインがヒットしました。嗚呼素晴らしきかなプラグインの世界。
ですがこのプラグイン、例えばFacebook上でシェアしたとき、デフォルトだと
こんな画像が表示されてしまいます。せっかくプラグインを組み込むのなら、オリジナルの画像を使いたいのが人情というものでしょう……ということで二つの方法を紹介。
デフォルト画像を上書き
How do I replace the default image?
Go to “wordpress directory”/wp-content/plugins/wp-ogp and replace default.jpg with another image with the same name! This only works for the default image, you need to add a featured image on the post page for it to work with articles.
……と『WP-OGP』のFAQにも載っている方法。任意の画像に default.jpg というファイル名をつけ wp-content/plugins/wp-ogp 内にアップロードするだけです。上書きするのでもともとの default.jpg が消えてしまったり、JPEG以外の画像だと使えなかったり、という欠点も。
functions.phpに追記
『WP-OGP』内の wpogp_add_head 関数をアクションフックで置き換える方法です。管理パネルの [外観] – [ヘッダー] で設定した画像だけでなく、サイト外の画像も表示可能という利点があります。例のごとく「ご利用は計画的に :-)」のコードですが、こんな感じで functions.php に追記します。
function my_wpogp_add_head() {
if ( function_exists( 'wpogp_add_head' ) ) {
global $post;
$image = get_the_post_thumbnail_src( get_the_post_thumbnail( $post -> ID ) );
$data = wpogp_set_data();
if ( empty( $image ) ) {
$data['og:image'] = $data['image_src'] = get_header_image();
}
else {
$data['og:image'] = $data['image_src'] = $image;
}
echo get_wpogp_headers( $data );
}
}
remove_action( 'wp_head', 'wpogp_add_head' );
add_action( 'wp_head', 'my_wpogp_add_head' );
上記の例では
- アイキャッチ画像がないとき……サムネイルはヘッダー画像
- アイキャッチ画像があるとき……サムネイルはアイキャッチ画像
となります。ヘッダー画像以外のものをサムネイルにしたいときは、9行目の get_header_image(); を ‘http://www.example.com/hoge.jpg’; のように書き換えればオッケイです。
[2011.5.1追記]
初出時のコードにて『WP-OGP』プラグインOFF時の挙動に不具合がありました。コードを修正しましたので、初出時のものをお使いになった方がいらっしゃいましたら、再設定をおねがいいたします。
コメントを残す