Poprawna odpowiedź to wtyczki, bo właśnie w ten sposób najczęściej rozszerza się funkcjonalność stron opartych na systemach zarządzania treścią (CMS), takich jak WordPress, Joomla, Drupal czy inne mniej popularne systemy. Wtyczka (ang. plugin) to dodatkowy moduł programistyczny, który podłącza się do istniejącego systemu i korzysta z jego API, czyli udostępnionych punktów zaczepienia: hooków, akcji, filtrów. Dzięki temu można dodać nowe funkcje bez modyfikowania głównego kodu CMS-a, co jest zgodne z dobrą praktyką: rdzeń systemu zostaje nietknięty, a rozszerzenia są odseparowane. W praktyce oznacza to, że jeśli chcesz dodać sklep internetowy do WordPressa, instalujesz wtyczkę typu WooCommerce. Jeśli chcesz formularz kontaktowy – instalujesz wtyczkę do formularzy. Jeżeli potrzebujesz integracji z systemem płatności, newsletterem, SEO, cache, galeriami zdjęć, nawet zewnętrznym API – to wszystko zwykle realizuje się właśnie przez instalację odpowiednich wtyczek. Z mojego doświadczenia w pracy z CMS-ami najważniejsze jest też dbanie o to, żeby wtyczki były aktualne, pochodziły ze sprawdzonych źródeł i miały dobre opinie. Nieuaktualnione rozszerzenia potrafią być poważną luką bezpieczeństwa. W branży przyjmuje się zasadę, że najpierw szukamy gotowej, dobrze utrzymanej wtyczki, a dopiero gdy jej nie ma, zlecamy napisanie własnej, zgodnie z dokumentacją danego CMS-a. Dzięki temu rozwój strony jest szybszy, tańszy i łatwiejszy w utrzymaniu, a cała architektura jest bardziej modularna i zgodna z profesjonalnymi standardami tworzenia serwisów WWW.
W pytaniu chodzi o rozszerzenie funkcjonalności strony opartej o system zarządzania treścią, czyli o dodanie nowych możliwości po stronie logiki serwisu: nowych modułów, integracji, mechanizmów działania. Tu kluczowe jest pojęcie wtyczki, czyli rozszerzenia programistycznego współpracującego z CMS-em przez jego oficjalne API. Częsty błąd polega na myleniu różnych elementów środowiska z tym, co faktycznie dodaje funkcje do systemu. Fonty, czyli kroje pisma, wpływają wyłącznie na warstwę wizualną – wygląd tekstu na stronie: krój, grubość, czytelność. Możemy zainstalować nowe fonty w systemie albo podłączyć je z zewnętrznych serwisów typu Google Fonts, ale to nie zmienia tego, co strona potrafi zrobić, tylko jak wygląda. To jest raczej temat z obszaru typografii i front-endu, a nie rozszerzania funkcjonalności CMS-a. Kodeki z kolei dotyczą głównie odtwarzania i kodowania multimediów: wideo, dźwięku, czasem specjalnych formatów. Instalujemy je w systemie operacyjnym, w przeglądarce albo w odtwarzaczu, żeby móc odtworzyć dany format pliku, np. H.264, HEVC, MP3. To nie jest rozszerzenie działania samej strony, tylko możliwość interpretacji danych po stronie użytkownika lub serwera. Mylenie kodeków z funkcjonalnością serwisu wynika często z ogólnego skojarzenia „coś się instaluje, więc pewnie to”. Archiwizery natomiast, takie jak ZIP, RAR, 7-Zip, służą do kompresji i pakowania plików. One mogą być użyte przy przenoszeniu strony, robieniu kopii zapasowej, ale nie są mechanizmem, który CMS „podpina” jako moduł funkcjonalny. To narzędzia pomocnicze, nie element logiki serwisu. W profesjonalnym podejściu do stron WWW rozszerzanie możliwości CMS-a opiera się właśnie na wtyczkach lub modułach, które integrują się z jego strukturą, dodają nowe typy treści, nowe panele w panelu administracyjnym, dodatkowe akcje po stronie front-endu, a nie na instalowaniu fontów, kodeków czy archiwizerów, które pełnią zupełnie inne role w ekosystemie IT.