Pokud nechcete kvůli galeriím do plugin ACF hned kupovat placený plugin, je možnost použít doplněk, který vám je tam jednoduše povolí přidat: ACF Photo Gallery Field. Ale při práci v Bricks narazíte na problém, že tam nejsou metadata správně registrována. A tady najdete návod, jak na to.
Kód
Toto celé bude fungovat za předpokladu, že máte na webu (v child theme nebo snippetu) tento kód:
/**
* Vrátí ID obrázků z ACF Photo Gallery pole.
*
* @param string $field Název ACF pole.
* @param int|null $post_id ID příspěvku. Když není zadané, použije aktuální post.
*
* @return array<int>
*/
function jk_acf_galerie_ids($field = 'galerie', $post_id = null)
{
$field = sanitize_key($field);
$post_id = $post_id ? (int) $post_id : get_the_ID();
if (!$post_id) {
$post_id = get_queried_object_id();
}
if (!$field || !$post_id) {
return [];
}
if (function_exists('acf_photo_gallery')) {
$images = acf_photo_gallery($field, $post_id);
if (is_array($images)) {
$ids = [];
foreach ($images as $image) {
if (!empty($image['id'])) {
$ids[] = (int) $image['id'];
}
}
return array_values(array_unique(array_filter($ids)));
}
}
$raw_value = get_post_meta($post_id, $field, true);
if (!is_string($raw_value) || $raw_value === '') {
return [];
}
return array_values(array_unique(array_filter(array_map('absint', explode(',', $raw_value)))));
}
function jk_acf_photo_gallery_field_to_gallery($field = 'galerie', $post_id = null)
{
return jk_acf_galerie_ids($field, $post_id);
}
function jk_acf_photo_gallery_field_to_image_loop($field = 'galerie', $post_id = null)
{
$ids = jk_acf_galerie_ids($field, $post_id);
return [
'post_type' => 'attachment',
'post_status' => 'inherit',
'post_mime_type' => 'image',
'post__in' => $ids ?: [0],
'orderby' => 'post__in',
'posts_per_page' => $ids ? count($ids) : 1,
'ignore_sticky_posts' => true,
'no_found_rows' => true,
];
}
add_filter('bricks/code/echo_function_names', function ($function_name) {
$allowed = [
'jk_acf_photo_gallery_field_to_gallery',
'jk_acf_photo_gallery_field_to_image_loop',
];
if (in_array($function_name, $allowed, true)) {
return true;
}
return $function_name;
});
Modul Gallery
Vložíte klasický modul galerie a do něj dáte jako dynamická data tento kód (jako dynamickou funkci echo, tedy obalené ještě závorkami { }:
//obalit složenými závorkami!
echo:jk_acf_photo_gallery_field_to_gallery('galerie')

A to je vše.. Díky tomu se vám obrázky z ACF pole typu galerie zobrazí v Bricks galerii a můžete je klasicky formátovat a normálně s nimi pracovat.
Loop s obrázky
Co se týče smyčky (abyste si obrázky mohli vypsat třeba do slideru a podobně), tak tam je to trochu jiné.
Uděláte si strukturu:
- Block (jako obalovací rodič, abyste si mohli určovat zobrazení všech obrázků)
- Div (loop)
- Image (samotný obrázek)
- Div (loop)
Loop pak bude mít custom kód pouze s jedním řádkem (není třeba upravovat):
//bez úprav
return jk_acf_photo_gallery_field_to_image_loop('galerie');
A do obrázku dáte jen dynamická data, která vezmou post_id (pozor, opět obalit složenými závorkami):
//obalit složenými závorkami!
post_id
Ukázka loopu



