Расскажу, как сам делал:
Отправляется ajax-запрос при нажатии на кнопку с одним параметром: id последней статьи. Его хранить можно как data-id у каждой статьи и доставать, например, как last-child.
На сервере:
Метод вытягивающий статьи из бд, где запрос по типу
SELECT * FROM articles WHERE id < :id
Потом рендеришь сам код, я на Laravel делал, там есть встроенная функция для этого. Не знаю, есть ли что-то подобное в CI. В крайнем случае можно просто формировать строку:
$text= '';
foreach($articles as $article) {
$text.="<a href='/articles/$article['id']'>$article['title']</a>"
}
И так далее все необходимые поля.
После этого возвращаем данные и в js в нужный блок (родителя всех статей) добавляем html через append.