Если с подгрузкой данных с сервера - через стандартный запрос постов + термса
Аналогично можно сделать через рест апи
Но легче сделать фильтр на лету
Если не можете найти готовое решение (это странно)
То реализуйте логику на js:
Выводите список категорий сверху, включая элемент все. У этих элементов должны быть идентификаторы, например data-id=5
В цикле вывода постов к элементам поста добавляете идентификаторы категорий данного поста, например data-category=‘3,5,7’
Пишите обработчик на кнопки категорий сверху, который будет показывать посты с совпадающим идентификатором (display:block) и скрывать с несовпадающим (display:none)