【SEO SIMPLE PACK】ACFの画像フィールドをOGPに設定する方法

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')

👉 構造に応じて取得方法が変わるのがポイントです。

  • URLをコピーしました!
目次