Вот. два файла. Надейсь разберетесь куда их. Глядя на исходный пакет. Ну и стили для +Н
.imagesext__tile {
position: relative;
}
.imagesext__overlay {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: rgba(0, 0, 0, 0.5);
color: white;
font-size: 2em;
padding: 5px 10px;
border-radius: 5px;
z-index: 1;
}
Этот 18+ надо переделать не так чтоб он определенное поле закрывал, i.e. одну картинку. А банално просто весь пост обертывал в div age18. Тогда не надо беспокоится за отдельные элименты внутри поста. (i.e видео, картинки через тайни и т.д.) — Заметка
Я сделал 18+
Надо добавить, 'imagesext' в 2-а файла :

'image', 'images', тут
if (in_array($field['type'], ['image', 'images', 'imagesext'])) {
$images_fields_keys[] = $fname;
}