Thread Starter
qbey
(@qbey)
Temporary solution if anyone needs it:
to functions.php:
add_action('admin_enqueue_scripts', 'adminpanel_styles_and_scripts');
function adminpanel_styles_and_scripts() {
wp_register_script('admin-custom-js', get_template_directory_uri() . '/js/admin.js', ['jquery']);
wp_localize_script('admin-custom-js', 'wp_localize_data', ['ajax_url' => admin_url('admin-ajax.php')]);
wp_enqueue_script('admin-custom-js');
}
add_action('wp_ajax_acfgalerie4_imgs_ids', 'acfgalerie4_imgs_ids_func');
add_action('wp_ajax_nopriv_acfgalerie4_imgs_ids', 'acfgalerie4_imgs_ids_func');
function acfgalerie4_imgs_ids_func() {
$images_ids = explode(',', $_POST['images_ids']);
$images_urls = array_map(function($image_id) {
$image_url_medium = wp_get_attachment_image_url($image_id, 'medium');
return $image_url_medium ?: wp_get_attachment_image_url($image_id, 'full');
}, $images_ids);
echo json_encode($images_urls);
die;
}
to custom admin.js:
document.addEventListener('DOMContentLoaded', function() {
acfgalerie4_thumbnails_fix();
});
function acfgalerie4_thumbnails_fix() {
return new Promise((resolve, reject) => {
let gallery_container = document.querySelector('.acf-galerie-4-container');
if(!gallery_container) return;
let images_containers = [...gallery_container.querySelectorAll('.attachment-thumbnail-container')];
let images_ids = images_containers.map(container => container.dataset.id).join(',');
let prepared_data = {
action: 'acfgalerie4_imgs_ids',
images_ids: images_ids
}
let data = new FormData();
Object.entries(prepared_data).forEach(([key, value]) => data.append(key, value));
fetch(wp_localize_data.ajax_url, {
method: 'POST',
body: data,
headers: {
'Cache-Control': 'no-cache',
}
}).then(responce => {
if(responce.ok) {
responce.json().then(data => {
let images_elems = images_containers.map(container => container.querySelector(':scope > img'));
if(!images_elems || !Array.isArray(data)) return;
images_elems.forEach((img_elem, index) => {
if(!data[index]) return;
img_elem.setAttribute('src', data[index]);
});
});
}
else {
console.log('responce: NOPE');
}
}).catch(error => {
console.log('ERROR: ' + error);
});
});
}
Someone previously reported this bug occurring in the Classic Editor. I tried replicating it today in both the Classic and Gutenberg editors but was unable to reproduce it. Could you please confirm if the issue is happening for you in the Classic Editor, the Gutenberg Editor, or both?
Also, if you could create a video demonstrating the bug—like you did last time—it would help me a lot in pinpointing the issue.