SEO SIMPLE PACKを使用している場合、通常はアイキャッチ画像がOGPに設定されます。
しかし、案件によっては「ACFで管理している画像をOGPに使いたい」というケースもあります。
この記事では、ACFの画像フィールドをOGP画像として出力する方法を解説します。
目次
実装コード
以下をfunctions.phpに追加します。
function custom_ogp_image($ssp_og_image){
if (is_singular()) {
$gallery = get_field('gallery');
if (!empty($gallery['gallery_img01'])) {
return $gallery['gallery_img01']['url'];
}
}
return $ssp_og_image;
}
add_filter('ssp_output_og_image', 'custom_ogp_image');
このコードの前提
この書き方は、以下のようなグループフィールド構成の場合です。
gallery(グループ)
├ gallery_img01(画像)
├ gallery_img02(画像)
└ gallery_img03(画像)
👉 この中の「gallery_img01(1枚目)」をOGPとして使用しています。
注意点
- 関数名は自由に決めてください。今回は
custom_ogp_imageとしています。 gallery(グループフィールド名)、gallery_img01(画像フィールド名)は自分のACFの設定に合わせてください。
ポイント
⭐グループの中の画像を指定している
$gallery['gallery_img01']
ACFのグループフィールドは配列で返るため、
このように配列として子フィールドにアクセスします。
画像がない場合はデフォルトにフォールバック
return $ssp_og_image;
未設定時はSEO SIMPLE PACK側のOGP(アイキャッチなど)が使われます。
単体の画像フィールドの場合
グループではなく、画像フィールドを1つだけ使っている場合は書き方が変わります。
function custom_ogp_image($ssp_og_image){
if (is_singular()) {
$image = get_field('ogp_image');
if (!empty($image)) {
return $image['url'];
}
}
return $ssp_og_image;
}
add_filter('ssp_output_og_image', 'custom_ogp_image');
違いのまとめ
| パターン | 書き方 |
|---|---|
| グループ | get_field('gallery')['gallery_img01'] |
| 単体フィールド | get_field('ogp_image') |
👉 構造に応じて取得方法が変わるのがポイントです。

