Röviden a WordPress múltjáról, avagy a b2/Cafelog megszületése
A mai formájában ismert WordPress CMS egy flexibilis, különböző kiegészítők (pluginok) segítségével széles skálán bővíthető tartalomkezelő rendszer. A W3Techs felmérése alapján a weboldalak kicsivel több, mint 43%-a WordPress alapokra épül, ezzel párhuzamosan pedig a CMS rendszerek közül a WordPress rendelkezik a legnagyobb piaci részesedéssel.
A 2000-es évek elején egy blog publikálásra alkalmas platform megtalálása még kifejezetten nagy kihívást jelentett. Erre a hiányra és egyben piaci résre 2001-ben egy francia fejlesztő (Michel Valdrighi) figyelt fel, aki megoldásként egy felhasználóbarát, az akkori weboldalakhoz képest intuitív felülettel rendelkező blog platformot készített, a b2/Cafelog-ot.
A projekt a kezdeti időszakban nagy sikereknek örvendett a felhasználók körében, viszont a szoftver hamar elérte határait. A továbblépést támogatva, az akkori felhasználók közül több szoftverfejlesztő nyújtott segítséget, így rövid időn belül, egy sikeres kollaboráció eredményeként megszületett a WordPress első publikus verziója.

forrás: https://www.webdesignmuseum.org/web-design-history/wordpress-0-7-2003
A WordPress előnyei napjainkban
Egyszerű kezelhetőség – Az admin felület átlátható és könnyen használható, így nem kell felesleges időt tölteni a rendszer kiismerésével.
Rugalmas többnyelvűsítés – A WordPress támogatja a többnyelvű tartalom kezelését, így egyszerűen létrehozhatóak tartalmak több különböző nyelven is.
Közösségi támogatás és dokumentáció – A WordPress hatalmas felhasználói és fejlesztői közösséggel rendelkezik, így rengeteg fórum, oktatóanyag és dokumentáció áll rendelkezésre.
Az általunk jelenleg ismert CMS rendszer nem csak blog bejegyzések publikálására ad nagyszerű lehetőséget. Menedzselhetünk benne különböző egyéb tartalmi kategóriákat, illetve akár webáruázat is.
Letisztult admin felülete által könnyen elsajátítható a rendszer használata, emellett pedig előre definiált lehetőségeket biztosít olyan funkciókra is, mint pl. nyelvesítés, gyorsítótárazás (cache) integrálása, SEO szempontok szerinti hatékony optimalizálás.
Egy szoftverfejlesztő cég számára a WordPressben rejlő potenciált a rendszer nyitottsága (Nyílt forráskód – Open Source) és bővíthetősége jelenti. A WordPress mögött álló szakmai források (pl.: fejlesztői közösség és részletgazdag dokumentáció) lehetőséget biztosítanak egy a projekt igényeit teljes mértékben kielégítő végtermék szállítására.
A WordPress gyenge pontjai
Biztonsági kockázatok – A rosszul megválasztott bővítmények vagy esetleg téma használata könnyű célpontot jelenthet a hackertámadásoknak.
Teljesítményproblémák – Egy nem megfelelően optimalizált WordPress weboldal könnyen okozhat performancia problémákat. A nagyméretű adatbázisok és a dinamikusan generált tartalom is növelheti a betöltési időt, ami ronthatja a felhasználói élményt.
Az elmúlt évek tapasztalatai alapján határozottan kijelenthető, hogy a WordPress két, rendszeresen visszatérő gyenge pontja a biztonság és performancia hiánya.
Az előző pontban említettük, hogy milyen előnyei lehetnek egy nyílt forráskódú szoftvernek. A biztonsági rések jelentős része ugyan ennek az Open Source típusú működési elvnek köszönhető. Hackerek, illetve automatizált botok számára is könnyen elérhetővé válik a weboldalhoz felhasznált téma és bővítmények listája, ami által úgynevezett “hátsó ajtók” (backdoor) nyithatóak a rendszerhez. Az ilyen esetekben a támadó célja általában a weboldal elérésének ellehetetlenítése.
Performanciát tekintve a legnagyobb problémát az adatok adatbázis szintű tárolásának módja és a külső forrásokból felhasznált pluginok jelentik. Kezdve az utóbbival, a WordPress pluginok nem egy konkrét, hanem általánosított problémákra kínálnak megoldást, amik nem mindig fedik le az ügyfél igényeit. A pluginok jelentős része figyelmen kívül hagyja a kód futtatási optimalizációit, ami lassítja a szerverlekéréseket és ezzel együtt az admin, valamint a publikus felületek betöltési idejét is.
A performancia problémák másik jelentős oka az adatok tárolásának módja. A WordPress az indexált adatbázisok használatát támogatja, ami alapvetően gyorsabb keresést és lekérdezést biztosít nagy mennyiségű adatoknál is. Egy optimálisan felépített adatbázis esetében, a különböző tartalmi entitások különböző adatbázis táblákat is jelentenek. A legelső bekezdésben említett blogmotor múltja miatt a WordPress ezeket az adatokat ömlesztve, egy adatbázis táblában tárolja, függetlenül a tartalmi entitás típusától. Ezek közül kivételt csak a WordPress gyárilag beépülő moduljai képeznek (pl.: Felhasználók, Kommentek…), az utólag, egyedileg felvettek nem.
A Codeva megoldása a WordPress gyenge pontjaira
A fentebb említett problémákra a Codeva megoldása az alkalmazáslogika és megjelenítés elkülönítése.
Miért jó ez az ügyfélnek?
Gyorsabb weboldal – Az egyedi fejlesztéseknek köszönhetően az oldal gyorsabban betöltődik, ami jobb felhasználói élményt nyújt és javítja a SEO-t.
Biztonságosabb rendszer – A testreszabott megoldásokkal csökken a hackertámadások esélye, mert kevesebb ismert biztonsági rés marad nyitva.
Pontosabban illeszkedik az igényekhez – A Codeva egyedi fejlesztései nem tartalmaznak felesleges funkciókat, hanem pontosan azt adják, amire az ügyfélnek szüksége van.
Moduláris fejleszthetőség és jobb skálázódás – A weboldal könnyebben bővíthető és fejleszthető a jövőben, anélkül, hogy teljes újratervezésre lenne szükség.
Ahelyett, hogy egyetlen általános adatstruktúrába kényszerítenénk különböző tartalmi entitásokat, mindegyikhez külön plugint fejlesztünk, amely pontosan azt az igényt fedi le, amire az adott ügyfélnek szüksége van. Ezek a bővítmények egyedi adatbázis táblát hoznak létre, ahol a kapcsolódó rekordokat tároljuk, ezáltal a backend dinamikussá, átláthatóvá és szélesen skálázhatóvá válik.
Ennek segítségével a Codeva által beépülő modulok már nem lokálisan tárolják a hozzájuk kapcsolódó adatokat. A rugalmas tartalommenedzsment miatt az oldalak esetében egyedi Gutenberg komponenseket készítünk, ahol könnyedén definiálható, hogy mely tartalmi egység melyik eleme jelenjen meg, és milyen stilisztikai beállításokkal.
Példa a gyakorlatban
Az alábbi példában, az ügyfél több különböző iterációban szerette volna megjeleníteni a helyszíneket, ahol cégük fizikailag is jelen van.
Milyen előnyök származnak ebből?
Hatékony adatkezelés – A helyszínek kezelése átláthatóbbá és megbízhatóbbá válik.
Testreszabható megjelenítés – A helyszínek eltérő dizájn változatokban történő megjelenítése segíti a vállalat arculatához és marketing stratégiájához való igazítást.
Első lépésben készítettünk egy plugint, az alábbiak szerint:
- Szükségünk volt egy teljesen új adatbázis táblára (wp_codeva_locations), amiben tárolhatjuk az alábbi mezők értékeit: Megnevezés, lokáció, leírás és opcionálisan az egyéb elérhetőségek.
- Regisztráltunk a WordPress számára egy új tartalmi entitást, a Locations (locations-cpt) poszt típust.
- Felülírtuk a pluginban a WordPress alapértelmezett működését, hogy a poszt típushoz tartozó adatokat az egyedi adatbázis táblába írja és onnan is olvassa.
- Ezután megírtuk a Locations típusú tartalomhoz tartozó Gutenberg komponenst és végezetül pedig felkészítettük a plugint a nyelvesítésre.
A második lépés UI Design alapján a vizuálisan megjelenő komponens különböző módozatait lefejleszteni, amit a WordPress weboldal általunk fejlesztett témája tartalmaz.
A végeredmény strukturáltan tárolt adatok megjelenítése eltérő változatokban.
Egy már felvett entitás tartalmának szerkesztése az admin felületen:

Az entitásokat megjelenítő komponens beállításai lehetőségei és vizuális megjelenéseik:
1. verzió:


2. verzió:


Záró gondolatok
Összességében megállapíthatjuk, hogy a WordPress flexibilitása és könnyen elsajátítható kezelhetősége miatt okkal vált piacvezető CMS rendszerré világszerte. Fejlesztőként lehetőségünk van arra, hogy a meglévő funkcionalitását kihasználjuk és alakítsunk, változtassunk azokon, amik gyorsabb és biztonságosabb felhasználást tesznek lehetővé ügyfeleinknek.