SNSでシェアされた際、見栄えやクリック率に大きく影響するのがOGP(Open Graph Protocol)画像です。WordPressでは、アイキャッチ画像をOGPに使う方法が一般的ですが、記事ごとに自由なOGP画像を設定したい場合には、カスタムフィールドを利用するのが効果的です。
本記事では、投稿ごとにOGP画像を自由に設定できるカスタムフィールドの作成方法と、実際にHTMLへ出力する方法を解説します。
ステップ1:カスタムフィールドを作成する(ACF使用)
まず、Advanced Custom Fields(ACF)プラグインを使って、OGP画像用のフィールドを作成します。
- WordPress管理画面の「カスタムフィールド」→「フィールドグループを追加」へ移動
- フィールド名:OGP画像(フィールドキー例:
ogp_image
) - フィールドタイプ:画像
- 表示条件:「投稿タイプが 等しい 投稿」
- 保存して公開
これで、投稿の編集画面に「OGP画像」アップロード欄が表示されるようになります。
ステップ2:OGP画像をHTMLヘッダーに出力する
functions.php
に以下のコードを追加することで、投稿ごとにOGP画像をHTMLヘッダーに反映させることができます。
function add_custom_ogp_image_tag() {
if (is_single()) {
global $post;
// ACFの画像フィールドを取得
$ogp_image_id = get_field('ogp_image', $post->ID);
if ($ogp_image_id) {
$ogp_image_url = wp_get_attachment_url($ogp_image_id);
} else {
// Fallback:アイキャッチ画像
$ogp_image_url = get_the_post_thumbnail_url($post->ID, 'full');
}
if ($ogp_image_url) {
echo '<meta property="og:image" content="' . esc_url($ogp_image_url) . '">' . "\n";
}
}
}
add_action('wp_head', 'add_custom_ogp_image_tag');
このコードは以下のように動作します:
- ACFで設定した
ogp_image
があればそちらを使用 - なければアイキャッチ画像(アイキャッチもなければOGPなし)
ステップ3:Twitterカード用のタグも追加(任意)
Twitterカードも設定したい場合は、twitter:image
タグを追加しましょう。
echo '<meta name="twitter:card" content="summary_large_image">' . "\n";
echo '<meta name="twitter:image" content="' . esc_url($ogp_image_url) . '">' . "\n";
ステップ4:OGP画像のサイズや仕様に注意
OGP画像として推奨されるサイズは以下の通りです。
- 推奨サイズ:1200×630px(アスペクト比1.91:1)
- ファイル形式:JPGまたはPNG
- ファイルサイズ:5MB以下が望ましい
ACFで画像サイズを制限したい場合は、フィールド設定画面で制限を加えることができます。
まとめ
投稿ごとにOGP画像を設定することで、SNSでのシェア時に統一感のある見た目を保ちながら、各記事の内容に最適化されたビジュアルを提供できます。ACFとOGPタグ出力の組み合わせにより、柔軟で実用的なSNS対応が可能になります。
OGPはSEOやクリック率にも関わる重要な要素です。ぜひ導入して、より魅力的な投稿を目指しましょう。