Если по нажатию нужен переход на страницу, то отдельная картинка - это, очевидно, пост. Картинку засовываем в тумбу поста или делаем произвольное поле. В разметке выводим как background или как картинку, в зависимости от верстки.
Если картинки разного размера, то я бы их как то унифицировал. Например, сделать 2-3 размера (судя по скриншоту их там 2). В посте проставить, например, чекбоксы (каждому размеру - свой чекбокс). В коде прописываем условие в зависимости от выбранного чекбокса, который, в свою очередь, добавляет класс с соответстующим размером.
Можно и отталкиваться от размера картинки, которые могут быть бесконечно разные. Но в этом случае, думаю, придется делать сетку masonry. Если же очередность вывода картинок унифицирована (на макете видно, что по середине большая картинка, а по краям - меньше), то запустить цикл с прописанными классами, которые определяют размер.