Hur man uppgraderar en WordPress tema när du har hackat fan av det

En annan stor projekt av gruvan är en stor migration av ett arv CMS till WordPress. Jag ska berätta allt om det en annan gång, men först ville jag att få dig upphetsad om DIY-IT genom att ge dig några praktiska instruktioner till material kan du sätta att arbeta direkt.

Om du någonsin har arbetat med WordPress, du vet en av dess stora överklaganden är rikt bibliotek av tillgängliga teman. Det finns en levande kommersiell tema marknaden, fylld med många duktiga designers.

Eftersom WordPress är skriven i PHP, nästan alla sina teman finns i källkoden, vilket innebär att de kan anpassas. Det finns några tema beslutsfattare som (jag tror fel-headedly) försöker komprimera och kryptera sina teman, men dessa folks är i minoritet.

I vilket fall som helst, medan du kan välja att använda ett tema som det är, ur lådan, jag tenderar att kraftigt hacka något jag kan få mina händer på, och det är verkligen varit fallet med teman. Den gotcha, naturligtvis, är jag också vilja dra nytta av funktionen och säkerhetsuppgraderingar och som leder till en oundviklig konflikt: hur använder jag det nya temat versionen, men sticka alla mina ändringar sömlöst in den nya koden?

Jag har länge använt lab anteckningar för att hålla koll på mina ändringar, men alltid jag måste göra ett sent akut fix och och det har varit (några) tillfällen där jag inte fick att dokumentera det. Så jag bestämde sig för att hitta en lösning som drivs av själva koden. Jag hittade en, det fungerar utomordentligt bra, och (heh, jag älskar den här!) Är det gratis.

Det finns i huvudsak tre huvudsteg

Som det visar sig, fungerar denna process ut exceptionellt bra. Jag uppgraderade tre platser på mindre än en halv dag, och var och en hade en ton av förändringar som behövs för att införlivas. Här är vad jag gjorde.

Hitta ändringarna

Steg ett i processen var att identifiera vad jag har ändrat i det ursprungliga temat koden. Jag gjorde måttligt betydande ändringar i den ursprungliga temat att hantera funktioner som min AI Editor kod. Dessa förändringar skulle behöva vikas till den uppdaterade tema också.

Min plan för att göra detta var att hitta den ursprungliga fördelningen källfilerna för gammalt tema och sedan diff (jämför) den mot mina ändringar. För var och en av mina ändringar, skulle jag då klart kommentera raderna för att visa de är mina ändringar i koden.

Min stora oro, när jag beslutat om denna strategi, var om jag hade behållit den ursprungliga fördelningen arkivet. Jag är vanligtvis ganska bra på att hålla reda på resurser, men jag hade inte rört det här i åtta månader, och allt kunde ha hänt.

Som en backup, skulle mitt labb anteckningar har väglett mig genom förändringar, men man vet aldrig om det finns en lapp här eller en korrigering där som aldrig gjort det i lab anteckningar. Det är mycket mer korrekt att göra en verklig källkod fil jämföra.

Lyckligtvis gjorde jag har den ursprungliga temafiler och så jag gick framåt med min första diff. Nyckeln till att göra allt detta hända är en fri programvara som kallas DiffMerge. DiffMerge är awwwwsome, fungerar på Windows, Mac och Linux, och blev snabbt min nya favorit verktyg. Diff, naturligtvis, har funnits i flera år, men DiffMerge gör det bara ack så enkel.

Den första fasen av processen var ganska lätt. Även om levande tema katalogen hade 11,270 filer i det, var de flesta av dem grafik och relaterade icke-kod objekt. Använda DiffMerge på det ursprungliga temat katalogen och på min ändrade tema katalog, det program som identifieras bara 18 olika källfiler som hade ändrats.

Det tog mig nästan en timme, med enbart DiffMerge, att gå igenom mina modifierade temafiler och lägga till “GD ändrats”, “GD tillade”, “GD modifierad” kommentarer hela temat. Detta möjlig mig, senare för att se vilka förändringar i den uppdaterade tema var av temat författare och vad som ändrats jag var tvungen att lägga när jag stickade min kod tillbaka till den uppdaterade tema.

Enterprise Software;? TechnologyOne tecken AU $ 6,2 affären med jordbruk, Samverkan, Vad är organiserande princip i dagens digitala arbetsplatsen,? Enterprise Software, söt SUSE! HPE hakar sig en Linux-distributioner, Enterprise Software, Apple att släppa iOS 10 den 13 september, MacOS Sierra den 20 september

Allt som allt den första fasen, hitta och specificering av mina ändringar i koden, tog mindre än en timme för den första platsen. Jag var ganska taggad.

Införliva förändringar i den uppdaterade tema

Nästa steg var att införliva mina ändringar i det nya temat distribution. När jag hade en mapp som innehåller den gamla tema version, med mina ändringar kommenterad, var det dags att få den uppdaterade tema. Jag hämtade den och skapade en andra mapp, som innehöll en fabriks ny kopia av säljaren tillhandahållen tema uppdatering.

Jag sprang DiffMerge på dessa två mappar, en mapp med min ursprungliga modifierad tema, och den andra mappen med den uppdaterade, fabriks färska tema. Eftersom de två versionerna var ungefär ett år isär, det fanns en hel del förändringar mellan de två versionerna. DiffMerge identifierat alla ändrade filer i mappen.

Fil-by-fil, gick jag igenom och jämförs filerna. Om det inte fanns några markerade linjer i den gamla filen med min “GD” markör, jag bara ignorerade filen. Detta var bara en uppdaterad fil.

Men om det fanns linjer märkta “DG”, jag noggrant kopieras och ändrat den uppdaterade temakod, lägga i mina ändringar. I de flesta fall, alla som var inblandade var en enkel meny val, berättar DiffMerge att antingen ersätta, infoga, prepend, eller lägga till.

Det fanns naturligtvis en del buggar när jag var klar, men DiffMerge fick mig mycket nära. Nyckeln till detta är att se koden jag lagt in den nya versionen innehåller också min “GD” markörer, så om jag måste göra detta igen i framtiden, kommer jag att kunna hoppa över den första “sök efter mina ändringar” scen .

Allt som allt det tog ungefär 75 minuter för att införliva mina ändringar i den uppdaterade tema. Jag har bytt namn den uppdaterade tema katalog (den som innehåller mina ändringar) och ett namn som skiljer sig från den ursprungliga leverantören tillhandahållen tema.

Än så länge är allt bra. Men det finns ytterligare en jämförelseförsök jag ville göra.

Jämföra de förändringar

Det är viktigt att notera att hittills hade jag inte försökt att köra något i mitt tema. Jag hade ingen aning om (eftersom jag hade gjort något test) om det skulle fungera. Det var okej eftersom jag fortfarande gör hushållning.

En mer bit av hushållning jag ville göra var jämföra min nyligen modifierade uppdaterade tema med säljaren tillhandahållen, fabriks färska uppdaterade tema. Den här gången, jag förväntas se bara mina ändringar markeras. Jag ville se om något hoppade ut på mig.

Så okomprimerad jag en annan version av leverantörs tillgänglig temafiler, och jag sprang DiffMerge igen. Denna gång jag jämförde mapp som innehåller den uppdaterade tema med mina ändringar mot den uppdaterade tema utan mina ändringar.

Som det visar sig, det var en intressant skillnad. Temat författaren ändrade sitt sätt att visa textsträngar från att använda _E () att esc_html_e () för de flesta av hans sträng utgångs samtal. Genom att jämföra bara min kod till hans, kunde jag se var dessa ändringar gjordes, och uppdatera mina ändringar att använda temat författarens nya konventioner …

som visade sig vara en mycket dålig idé. Som det visar sig, undgår denna nya funktion ut HTML-taggar och några av mina modifierade koden var genererar HTML-taggar, som min något nitisk hacka hade då just brutit. Lyckligtvis, eftersom jag hade märkt all min kod och kunde använda DiffMerge att enkelt se mina ändringar, var det ganska enkelt att gå tillbaka genom och ångra denna “fix”.

Ja, det händer.

Kontrollera mappstruktur och bilder

Nästa upp, var det dags att kontrollera mappstrukturen i mitt ursprungliga, modifierad tema och nya modifierade, uppdaterad tema. Jag hade förändrats ett antal bilder, i synnerhet platshållare logotyp, för att återspegla identitet på min webbplats. Jag har också lagt till ett antal egna bildhållare mappar min AI Publisher (partnern modulen till AI Redaktör) kod som används för presentation av webbplatsens innehåll.

Så först, var det dags att jämföra gamla temats mapp bilden till den nya temats mapp image. Detta gjorde jag utanför DiffMerge, väljer att förlita sig istället på den gamla, Mark I Eyeball.

Starta det nyligen uppdaterade, modifierad tema

Det var dags att ladda det nya temat. På servern, beslutade jag att göra det den gamla skolan sätt. Jag stänger Apache, och sedan jag döptes den gamla tema mapp, vilket ger versionsnumret för den nu föråldrade tema version. Sedan, med hjälp av FileZilla över en säker tunnel, laddat jag min nyligen ändrats, uppdateras tema. Det tog ungefär en timme, så jag tänkte this’d vara ett bra tillfälle att lyfta några vikter.

Efter en bra träningspass och en ännu trevligare dusch, kom jag satte sig vid mitt skrivbord och försökte saker. Det var allt arbete och mina teman hade blivit ordentligt uppdaterade.

Så, om du har kraftigt hacka dina teman (och detta kommer att fungera för plug-ins och även andra CMS, också, jag är säker), hämta DiffMerge och använda min trestegsprocess. Du kommer att tacka mig när du är klar.

Håll ögonen öppna. Vi har en mycket mer kommer i DIY-IT inklusive yep, faktiska koden. Du kommer att älska det!

Om du har försökt uppdatera teman, berätta om dina erfarenheter. Observera att jag förväntar TalkBacks för projekt artiklar att vara annorlunda från tonen på webbplatsen regeringen. Posta endast konstruktiva kommentarer och användbar information. Känn dig fri att rant på min debattartiklar, men låt oss försöka hålla dessa diskussioner projekt användbar och informationsfylld.

? TechnologyOne tecknar AU $ 6,2 affär med jordbruk

Vad är organiserande princip i dagens digitala arbetsplats?

Söt SUSE! HPE hakar sig en Linux-distributioner

Apple att släppa iOS 10 den 13 september, MacOS Sierra den 20 september