A WordPress egy tartalomkezelő rendszer, mellyel weboldalakat, blogokat vagy (a különböző kiegészítőket használva) egyéb online szolgáltatásokat fejleszthetünk. A WordPress nyílt forráskódú és a GNU GPL licencnek megfelelően használható. Ez a gyakorlatban azt jelenti, hogy a WordPress kódbázisát szabadon (és ingyenesen) használhatjuk a saját weboldalaink működtetéséhez.
A WordPress oldalán (https://wordpress.org) többet is megtudhatunk a projekt történetéről és küldetéséről.
A WordPress Technikai Működése
Sok esetben találkozom webfejlesztők, programozók részéről szkepticizmussal a WordPressel kapcsolatban, amely sokszor abból ered, hogy nem ismerik magát a rendszert. Éppen ezért jöjjön egy kis áttekintés, hogyan működnek a WordPress segítségével készített weboldalak.
A környezet
[Az alább leírt környezet és konfiguráció az általam üzemeltetett honlapokra vonatkozik, de ez nem jelenti, hogy nincs más működőképes setup.]
Természetesen a kérések kiszolgálásához egy webszerverre van szükség. Számomra a ‘Lamp’ setup vált be leginkább. Ez a következőket tartalmazza:
- Linux:
Maga a szerveren található operációs rendszer. A Linux (és annak Ubuntu verziója) szintén nyílt forráskódú és az egyik legnagyobb közösséggel rendelkező szoftver. Ez óriási előnyt jelent a felmerülő problémák megoldásánál. - Apache
Az Apache az ‘elsőszámú http szerver az interneten’. Leegyszerűsítve ez a szoftver kezeli a szerverre érkező kéréseket és ‘közvetíti’ azokat a megfelelő fájlokhoz. - MySQL
A ‘Világ legnépszerűbb nyílt forráskódú adatbázisa’. Saját weboldaluk szerint a Facebook és a Google is használja a MySQL-t. A WordPress a MySQL-ben létrehozott adatbázisban tárolja az oldal üzemeltetéséhez szükséges információkat. - PHP
A PHP egy rendkívül népszerű programnyelv, mely kifejezetten a webfejlesztés céljából lett kifejlesztve. Ezáltal rengeteg gyakran használt és szükséges funkció már előre beépítve érkezik (pl globális változók, $_GET, $_POST változók).
A WordPress felépítése
A WordPressel történő fejlesztés egyik nagy előnye, hogy az általánosan szükséges objektumok egy része alapból benne van egy üres installációban is.
A Felhasználók
A WordPressben lehetőség van a felhasználók kezelésére. Új felhasználókat adhatunk hozzá, módosíthatjuk az adataikat és hozzáféréseiket is. A WordPress alapból 5 féle felhasználóval érkezik, de ezt később módosíthatjuk pluginek vagy kód segítségével.
A felhasználók kapnak egy adminisztrációs felületet, ezen keresztül tudják egy grafikus felületen kezelni az oldalt.
A Bejegyzések (Post)
A WordPressben gyakorlatilag minden tartalom egy ‘post’-ként van tárolva. A posztok különböző attribútumokkal rendelkeznek. Ilyen a poszt címe, leírása, publikáltsága, írója, dátuma, stb.
Részletesebb leírást a posztok alapvető attributumairól itt találhatsz. Ezek később szintén plugin, vagy kód segítségével kiegészíthetők az egyedi igények szerint. A poszt alapvető elemei a wp_posts nevű adatbázis táblában vannak tárolva, még a később hozzáadott, részleteket és metainformációkat a wp_postsmeta tábla tárolja.
A WordPress egyik hátránya éppen ebből a struktúrából fakad. Az alapból létrehozott adatbázis struktúra sokmindent megkönnyít, azonban bizonyos esetekben a skálázhatóság rovására megy. Az, hogy ez így alakult nagy részben annak köszönhető, hogy a WordPress alapvetően blogmotornak lett létrehozva 2003-ban. A megfelelő lépések megtételével ezek a problémák kezelhetőbbé válnak (illetve a weboldalak döntő többsége soha nem is skálázódik odáig, hogy ez problémát jelentsen).
A kiegészítők (Pluginek)
A bővítmények különálló szoftverek, melyek a WordPress installációba történő feltöltés (wp-content/plugins/) és aktiválás után kiterjeszthetik a WordPress által nyújtott lehetőségeket.
A WordPress készítői szándékosan úgy készítették el a kódbázist, hogy az viszonylag (sőt szerintem nagyon is) könnyen kiterjeszthető legyen. Erre a célra rendelkezésre állnak függvények, globális változók, illetve úgynevezett ‘hookok‘.
Az ingyenesen, vagy rendkívül olcsón elérhető pluginek rengeteg lehetőséget teremtenek, azonban veszélyeket is rejtenek magukban.
Az egyik leggyakoribb hiba, hogy a weboldal készítője (legtöbb esetben a szaktudás hiánya, vagy időspórolás miatt) túl sok (vagy nem túl jó minőségű) plugint használ a célja elérése érdekében. Ez biztonsági szempontból jelent kockázatot, hiszen minden egyes plugin egy-egy újabb biztonsági rést jelenthet, főként a nem frissített, vagy gyengén támogatott pluginek esetén. Emellett horrorisztikusan lassú töltési időt is eredményezhet.
Ennek kiküszöbölésére csak a legjobb, legnépszerűbb és legszükségesebb pluginek használatát javaslom. Íme ezekből egy rövid válogatás:
- Elementor (PRO) – Page Builder <3
Ez az egyik leghasznosabb és legjobb szoftver amivel valaha találkoztam. A Frontenden történő módosításokhoz nem is igazán ajánlanék mást. A szoftver annyira praktikus, gyors és szerethető, hogy ennek még egy külön cikket tervezek szentelni. - WooCommerce
A legnépszerűbb webshop plugin, amely több mint 5 millió weboldalon van telepítve. Szinte mindent kezel, amelyre szükség lehet egy webshop létrehozásához. - Ultimater Members
Ez a plugin rendkívül jó szolgálatot teszt, amikor az alapból beépített felhasználói típusok és hozzáférések már kevésnek bizonyulnak. - Advanced Custom Fields (ACF)
Ahogy a posztoknál már említettem, különböző poszt típusok létrehozására is van lehetőség. Bár ezt rendszerint kódból oldjuk meg, az egyedi mezők hozzáadásánál nagy segítség tud lenni ez a plugin. - WP Mail Smtp by WPForms
Egy viszonylag egyszerű plugin, mely az oldalról történő email küldésekben segít (pl értesítések esetén).
Ezek a pluginek több millió, vagy több százezer aktív telepítéssel rendelkeznek. Ez egyrészt biztosíték a folyamatos supportra és frissítésekre, másrészt pedig szinte biztos, hogy valakinek már felmerült az az error, ami téged éppen hátráltat (így könnyen megtalálhatod a megoldást valamelyik fórumon). Ezen kívül a szükséges funkcionalitásokat egyedi kóddal építem be. Ez biztosít a gyors oldaltöltés megőrzéséről.
A Themek
A themek, vagy sablonok többnyire az oldal külsejét segítenek egyszerűen testre szabni, valamint esetenként funkcionalitást is adnak az oldalhoz.
Ennek ellenére személyes véleményem, hogy a theme alapú oldalak ideje lejárt, illetve csak ritka esetekben jelentenek jobb alternatívát mint a theme builder pluginek (pl az Elementor). Éppen ezért az újonnan készülő weboldalakon szinte kivétel nélkül az Elementor által készített Hello Theme-t használom. Ez a theme rendkívül gyors töltési időt eredményez, valamint megkönnyíti az életet a fejlesztés során is.
A kódbázis
A WordPress nem csak a felhasználók, hanem a fejlesztők számára is kedvező. Hatalmas számú előre beépített objektum és függvény érhető el, ezzel felgyorsítva a kiegészítők fejlesztését. A dokumentáció rendkívül tiszta, de részletes, itt érhető el:
A leggyakoribb hibák WordPress weboldalaknál
A WordPress egy rendkívül megosztó témakör a programozók körében. Egyértelmű, hogy mivel egy egyszerű weboldalt néhány kattintással bárki elkészíthet, jelentős piacot vesz el a webfejlesztőktől. Amennyiben ez egy egyszerű portfólióoldal, vagy egy szimpla blog, ezzel talán nincs is akkora probléma.
A bajok akkor szoktak kezdődni, amikor valaki a megfelelő hozzáértés és utánajárás nélkül egyre több és több funkcionalitást szeretne weboldalába építeni. Ezt rendszerint újabb és újabb pluginek telepítésével éri el. Ahogy már korábban is említettem, ez biztonsági réseket és sebességvesztést eredményez.
Az ilyen oldalak (mert sajnos rengeteg ilyen oldal létezik), rombolják a WordPress presztizsét, holott csak a megfelelő eszköz rossz használatáról van szó. Elsősorban tehát nem a technikai limitációk, hanem az emberi tényező az, ami a problémákat okozza.
Hogyan dolgozunk, hogy elkerüljük ezeket a hibákat?
A pluginek számának minimalizálásával, azok részletes ismeretével megelőzhetjük, hogy az oldalaink a fent említett problémákkal szembesüljenek. Saját fejlesztésű bővítményeinknél igyekszünk mindig a WordPress Developer Resources-ben találhatókhoz igazodni.
Emellett legtöbb ügyfelünk kéri a karbantartási szolgáltatásunkat is, mely segítségével az oldal naprakész marad. Ennek keretein belül frissítjük a szerveren és magán az oldalon található szoftvereket, biztonsági mentéseket készítünk, illetve az esetlegesen változó üzleti igényekhez igazítjuk az oldal kialakítását.