Я пагинацию реализовал следующим, простым способом:
при выводе записей на страницу в data-атрибутах кнопки для подгрузки новых записей я записал такие параметры как id последней записи в списке, лимит записей (он же офсет). То есть кнопка выглядит примерно так
<button class="load-more-btn" data-lastid="5" data-limit=5 data-offset=5>Load more</button>
При нажатии на кнопку все эти параметры аяксом передаются на сервер где выполняется обычная SQL-ка, которая мне выбирает следующий блок записей и возвращает шаблон (либо JSON) клиенту, который из него строит нужный вид. Вообще пагинация - это не что-то сложное, просто один и тот же запрос с изменяющимся параметром OFFSET