MB blog

こちらは主に自分用のメモです。

ACF Pro のギャラリーフィールドの画像から、すべての記事に自動で注目画像を設定する


スポンサードリンク

Advanced Custom Fields の有料版 ACF Pro についてくる、Gallery というフィールドタイプ。画像の数を設定せずに無制限に追加でき、画像をたくさん設定させたい投稿タイプに便利な機能。
このギャラリー内の画像から、自動的に投稿のサムネイル(注目画像)を設定したいと考えました。
投稿内の画像から最初のものをとってきて注目画像に自動設定するためには、XO Featured Image Tools という素晴らしいプラグインがあります(日本人の方が開発されています)。
ja.wordpress.org
しかし、上記は ACF に対応していません。

そこで、以下のコード functions.php に追加することで、ギャラリー内の最初の画像を注目画像に登録するようにできました。

/* 投稿が保存されたときに、以下の function が発動するよう登録 */
add_filter('acf/save_post', 'gallery_to_thumbnail',11,11);
/* ギャラリーの最初の画像を取得して、記事のサムネイル画像にセットする */
function gallery_to_thumbnail ($post_id) {
	$gallery = get_field('ギャラリーフィールドの名前', $post_id, false);
	var_dump($gallery);
	var_dump($post_id);
if ($gallery) {
	$image_id = $gallery[0];
	set_post_thumbnail($post_id, $image_id);
  }
}