Hogyan egyszerűsítsünk egy bonyolult WordPress Multisite telepítést, és hogyan könnyíthetjük meg a továbbfejlesztést?

Publikálva:

Nemrég egy összetetted WordPress projektben vettem rész, mint front-end fejlesztő. Málta egyik legnagyobb cégcsoportja 13 weboldalt rendelt; mindegyiknek egy multisite rendszer eleme kellett, hogy legyen. Én a fejlesztőcsoporthoz a folyamatok 40%-a környékén csatlakoztam.


Bár a honlapokat design szerint lehetett volna csoportokban kezelni, nem voltak szülő-sablonok használva. A munkálatok már érkezésem elött túl bonyolultak voltak ahhoz, hogy figyelmen kívül hagyhassuk az állapotokat.

Mielőtt tovább haladtunk volna a fejlesztésekkel, meg kellett állnunk, és csinálni egy nagy takarítást.

Először kategorizáltuk a már meglévő fájlokat

Megegyező: Ezek azok a fájlok, amiknek egy szülő-sablon mappában van a helyük, mert teljes mértékben megegyeznek minden weboldalon
Nem megegyezőek, de lehetnének: Ezek azok a fájlok, amelyek nagy részét át lehet alakítani, hogy azok megegyezőek legyenek, és csak egy kis részletük az, amelyik weboldal specifikus.
Nem használt: Azok a fájlok, amelyek már nem voltak használatban a munka előrehaladtával
Összekombinálható fájlok: Ezek voltak azok a fájlok, amik minden különösebb ok nélkül több darabból álltak. Ezek összevonhatók és meg tudják őrizni korábbi funkcióikat a WordPress feltételes meghívásainak köszönhetően.
Egyedi: Ezek azok a fájlok, amelyeknek a gyerek-sablon mappában van a helyük, és csak egy-egy weboldalra vonatkoznak, mint például egy egyedi kezdő oldal.

Körülbelül 60-80 PHP fájl weboldalanként nem hangzik túl soknak, de az oldalak ötös csoportban voltak, és tudtuk, hogy még további csoportokat kell létrehoznunk. 15-20 felesleges fálj öttel megszorozva már 75-100 fálj is adhat, amiről később egyenként kellene döntést hozni, vagy tovább fejleszteni. Nem csak a PHP fájlokat, de más, mindenhol egységesen előforduló fájlokat is figyelembe vettünk.

A tisztogatás közben vált világossá, hogy nem csak egy honlap-csoport-on belül, de csoportok között is vannak megegyező fájlok. Tehát a WordPress szülő-sablon funkciójánál magasabb szintű megosztást kellett létrehoznunk.

Prezentáció az egyszerűsítés folyamatáról

Új könyvtárak

Létrehoztunk egy közös könyvtárat, két almappával: egyet a közös PHP fájloknak, egyet a közös LESS fájloknak. Minthogy minden oldal egy, a Bootstrap személyre szabott verzióját használta, az oldalak között sok volt a hasonlóság, és a WordPress modulok is hasonló felépítésűek voltak, a LESS gyűjteményünk tartalmazta az összes egyező fájlt.

Wordpress Multisite structure with extended libraries

WordPress Multisite felépítés kibővített könyvtárakkal

Nincsenek 13 példányban a módosított Bootstrap LESS fájlok, mint ahogy az azonos WordPress LESS fájlok sem az olyan az egyszerű modulokhoz, mint például a megjegyzés mezők, a kép igazítások, az alapvető finomhangolások, és létrehozunk néhány plug-in-specifikus LESS fájlt is.

Minden szerkezeti kódolását kombináltuk ebben a könyvtárban, tehát a megjelenés személyre szabásával és az egyedi kódokkal már csak a gyermek- vagy a szülőt-sablon mappákban kell foglalkoznunk.

PHP könyvtárunkban van néhány egyedi gyártású widget és kódrészletek, amelyek a 13 webhely bármelyik pontján megtalálhatók.

Wordpress Multisite structure with extended libraries

WordPress Multisite felépítés kibővített könyvtárakkal

Ezzel egyidőben készítettem egy térképet a fájlokról, és azok kapcsolatáról a kedvenc Xmind szoftverrel. Az a térkép nagyon hasznos a változtatások nyomköveteséhez a tisztogatás közepette. A különböző fájltípusok más-más szint kaptak, és az eredeti verzióban még a törölt fájlokat is vezettem. A térképen nem csak a fájlokat, de az egyedi taxonómiákat, egyedi mezőket és funkciókat is nyomon követtük.

Az egyszerűsítés után az eredeti fájlok 30%ával végeztünk, ami azt jelenti, hogy a hibajavítások és továbbfejlesztések sokkal gyorsabban tudtak ezután haladni. A WordPress Multisite megoldását használva sokkal könnyebben tudtunk új oldalakat létrehozni, és a teljes megbízást két hónappal hamarabb tudtunk teljesíteni.