Ну ты наговорил, а для чего готовые расширения?
По-поводу "запрос+ссылка". Когда ты так делаешь (переносишь некоторые куски в класс и т.д.) то ты упрощаешь поддержку. Тебе не придётся при изменении вывода искать все места где выводится этот текст. Юзаешь функцию и изменяешь уже её.