Hoe maak je een WordPress theme te upgraden nadat u de heck van te maken hebt gehackt

Een ander groot project van mij is een grote migratie van een legacy CMS WordPress. Ik zal u alles vertellen over het een andere tijd, maar eerst wilde ik je enthousiast over doe-het-IT te krijgen door het geven u een aantal hands-on how-to materiaal dat u kunt zetten direct aan het werk.

Als je ooit hebt gewerkt met WordPress, weet je één van de grote beroep is de rijke bibliotheek van de beschikbare thema’s. Er is een levendige commerciële thema markt, gevuld met vele talentvolle ontwerpers.

Sinds WordPress in PHP wordt geschreven, bijna al haar thema’s zijn beschikbaar in de broncode, wat betekent dat ze kunnen worden aangepast. Er zijn een paar thema makers die (denk ik verkeerd nuchter) proberen te comprimeren en hun thema’s te versleutelen, maar deze mensen zijn in de minderheid.

In ieder geval, terwijl u kunt ervoor kiezen om een ​​thema te gebruiken zoals het is, uit de doos, heb ik de neiging om zwaar alles wat ik kan mijn handen op hacken, en dat is zeker het geval met thema geweest. De Gotcha, natuurlijk, ik ook graag om te profiteren van de functie en de veiligheid upgrades en dat leidt tot een onvermijdelijk conflict: hoe kan ik gebruik maken van de nieuwe thema-versie, maar brei al mijn veranderingen naadloos in de nieuwe code?

Ik heb lang gebruikt lab notities bij te houden van mijn wijzigingen houden, maar altijd zal ik moeten een late-night nood fix te doen en en er zijn (een paar) gelegenheden waar ik niet rond kreeg te documenteren geweest. Dus, ik uiteengezet om een ​​oplossing gedreven door de code zelf te vinden. Ik vond een, het werkt uitzonderlijk goed, en (heh, ik hou van deze!) Het is gratis.

Er zijn in wezen drie belangrijke stappen

Het blijkt dat dit proces werkt uitzonderlijk goed. Ik heb een upgrade drie locaties in minder dan een halve dag, en hadden elk een ton van de veranderingen die nodig worden opgenomen. Hier is wat ik deed.

Vind de veranderingen

Stap één van het proces was om te bepalen wat ik veranderd in het oorspronkelijke thema code. Ik maakte matig substantiële wijzigingen in het oorspronkelijke thema van de functies van mijn AI-editor code verwerken. Deze veranderingen moeten worden gevouwen in de bijgewerkte thema ook.

Mijn plan om dit te doen was om de oorspronkelijke verdeling bronbestanden voor de oude thema te vinden en dan diff (vergelijk) het tegen mijn wijzigingen. Voor elk van mijn wijzigingen, zou ik dan is het duidelijk commentaar de lijnen om te laten zien dat zijn mijn wijzigingen in de code.

Mijn grote zorg is, een keer heb ik besloten om op deze strategie, was of ik de originele distributie archief had bewaard. Ik ben meestal vrij goed in het bijhouden van de middelen, maar ik had niet dit spul aangeraakt acht maanden, en alles wat er had kunnen gebeuren.

Als een back-up, zou mijn lab aantekeningen mij geleid door de veranderingen, maar je weet nooit of er een patch hier of een correctie daar dat het nooit in het lab aantekeningen. Het is veel nauwkeuriger om te doen een echte broncode bestand te vergelijken.

Gelukkig, ik had het oorspronkelijke thema bestanden en dus ging ik verder met mijn eerste diff. De sleutel tot het maken van dit alles gebeuren is een gratis stukje software genaamd DiffMerge. DiffMerge is awwwwsome, werkt op Windows, Mac en Linux, en werd al snel mijn nieuwe favoriete software tool. Diff, natuurlijk, bestaat al jaren, maar DiffMerge maakt het alleen maar oh zo simpel.

De eerste fase van het proces was vrij eenvoudig. Hoewel de live-thema directory had 11.270 bestanden in het, de meeste van hen waren graphics en gerelateerde non-code objecten. Met behulp van DiffMerge op het oorspronkelijke thema directory en op mijn gewijzigde thema directory, het programma geïdentificeerd slechts 18 verschillende bronbestanden die veranderd waren.

Het kostte me bijna een uur, met alleen DiffMerge, om te gaan door mijn aangepaste thema-bestanden en voeg “DG veranderd”, “DG toegevoegd”, “DG gemodificeerd” opmerkingen van dit thema. Dit stelde mij, later om te zien welke veranderingen in de bijgewerkte thema waren door het thema auteur en wat er veranderd moest ik toe toen ik mijn code terug in de bijgewerkte thema gebreid.

Enterprise Software;? TechnologyOne tekenen AU $ 6,2m deal met de landbouw; Samenwerking; Wat is het organiserend principe van de hedendaagse digitale werkplek;? Enterprise Software; Sweet SUSE! HPE haken en ogen zelf een Linux distro, Enterprise Software, Apple vrij te geven iOS 10 op 13 september, MacOS Sierra op 20 september

Alles bij elkaar, de eerste fase, het vinden en waarin een overzicht mijn wijzigingen in de code, duurde minder dan een uur voor de eerste site. Ik was behoorlijk psyched.

Verwerk veranderingen in de geactualiseerde thema

De volgende stap was om mijn wijzigingen op te nemen in het nieuwe thema distributie. Zodra ik een map met de oude thema-versie, met mijn wijzigingen geannoteerde had, was het tijd om de bijgewerkte thema krijgen. Ik downloadde het, en creëerde een tweede map, die een fabriek-vers exemplaar van het door de leverancier verstrekt thema-update bevatte.

Ik rende DiffMerge in de volgende twee mappen, één map met mijn originele aangepast thema, en de andere map met de update, in de fabriek verse thema. Aangezien de twee versies waren ongeveer een jaar apart, waren er heel wat verschillen tussen de twee versies. DiffMerge geïdentificeerd alle gewijzigde bestanden in de map.

File-by-file, ging ik door en vergeleek de bestanden. Als er geen gemarkeerde lijnen in het oude bestand met mijn “DG” marker waren, ik negeerde gewoon het bestand. Dit was gewoon een bijgewerkte bestand.

Maar als er regels staan ​​”DG”, ik zorgvuldig gekopieerd en gewijzigd de bijgewerkte thema code, het toevoegen van in mijn wijzigingen. In de meeste gevallen, al die betrokken was was een eenvoudig menu selectie, vertelt DiffMerge om ofwel te vervangen, invoegen, prepend, of voegen.

Er waren natuurlijk een aantal bugs toen ik klaar was, maar DiffMerge heeft me heel dichtbij. De sleutel tot dit is ervoor te zorgen dat de code die ik toegevoegd in de nieuwe versie bevat ook mijn “DG” markers, dus als ik dit opnieuw doen in de toekomst, zal ik in staat zijn om de eerste te slaan “zoektocht naar mijn wijzigingen” stage .

Alles bij elkaar, het duurde ongeveer 75 minuten om mijn wijzigingen op te nemen in de bijgewerkte thema. Ik heb de bijgewerkte thema directory (degene die mijn wijzigingen bevat) om een ​​naam die het zich onderscheidt van de oorspronkelijke-vendor verstrekt thema hernoemd.

So far, so good. Maar er is nog een vergelijking run ik wilde doen.

Vergelijk de veranderingen

Het is belangrijk op te merken dat, tot nu toe, ik had niet geprobeerd lopend niets in mijn thema. Ik had geen idee (omdat ik niet testen had gedaan) of het zou werken. Dat was in orde, want ik was nog steeds de huishouding te doen.

Nog een stuk van de huishoudelijke dienst die ik wilde doen was te vergelijken mijn nieuw gemodificeerde bijgewerkt thema met de leveranciers verstrekt, in de fabriek verse bijgewerkt thema. Deze keer, ik had verwacht te zien alleen mijn wijzigingen gemarkeerd. Ik wilde zien of er iets sprong uit bij mij.

Dus, ik ongecomprimeerd een andere versie van het door de leverancier verstrekt thema bestanden, en ik rende DiffMerge weer. Deze keer heb ik ten opzichte van de map met de bijgewerkte thema met mijn wijzigingen ten opzichte van de geactualiseerde thema zonder mijn veranderingen.

Zoals blijkt, was er een interessant verschil. Het thema auteur veranderde zijn manier van weergeven van tekst strings gebruiken _E () om esc_html_e () voor de meeste van zijn string output gesprekken. Door het vergelijken van gewoon mijn code te zijn, was ik in staat om te zien waar deze veranderingen werden gemaakt, en bij te werken mijn aanpassingen aan nieuwe verdragen het thema schrijver gebruiken …

die bleek een heel slecht idee. Het blijkt dat deze nieuwe functie ontsnapt uit HTML-tags en sommige van mijn aangepaste code was het genereren van HTML-tags, die mijn licht ijverig hack had toen net gebroken. Gelukkig, omdat ik al mijn code had gemerkt en was in staat om DiffMerge gebruiken om mijn veranderingen gemakkelijk zien, was het heel eenvoudig om terug te gaan door en verwijder deze bijzondere “fix”.

Ja, het gebeurt.

Controleer mappenstructuur en afbeeldingen

Next up, was het tijd om de mappenstructuur van mijn origineel, aangepast thema en de onlangs gewijzigde, bijgewerkte thema controleren. Ik had een aantal beelden, in het bijzonder de plaats-houder logo, veranderde de identiteit van mijn site reflecteren. Ik heb ook een aantal aangepaste afbeelding-houder mappen mijn AI Publisher (de partner module om de AI Editor) code die wordt gebruikt voor de presentatie van de inhoud van de site.

Dus, eerst, was het tijd om de afbeelding de map van de oude thema’s te vergelijken met map met afbeeldingen van de nieuwe thema’s. Dit deed ik buiten DiffMerge, kiezen in plaats daarvan vertrouwen op de oude, Mark I Eyeball.

Laad de vernieuwde, gewijzigde thema

Het was tijd om het nieuwe thema te laden. Op de server, heb ik besloten om het te doen de ouderwetse manier. Ik stilgelegd Apache, en vervolgens omgedoopt tot ik de oude thema map, waardoor het het versienummer van de inmiddels verouderde thema-versie. Dan, met behulp van FileZilla over een beveiligde tunnel, ik geüpload mijn nieuw gewijzigd, bijgewerkt thema. Dit duurde ongeveer een uur, dus ik dacht this’d een goed moment om een ​​aantal gewichten op te heffen zijn.

Na een goede training sessie en een nog mooiere douche, kwam zat ik weer achter mijn bureau en probeerde dingen uit. Het was allemaal het werk en mijn thema’s waren correct bijgewerkt.

Dus, als je zwaar hebt gehackt uw thema’s (en dit zal werken voor plug-ins en zelfs andere CMS, ook, ik ben er zeker), downloaden DiffMerge en gebruik mijn proces in drie stappen. Je zult me ​​dankbaar zijn als je eenmaal klaar bent.

Blijf kijken. We hebben nog veel meer komen in doe-IT met inbegrip van, yep, eigenlijke code. Je gaat love it!

Als u hebt geprobeerd het bijwerken van thema’s, vertel ons uw ervaringen. Houd er rekening mee dat ik verwacht talkbacks voor project artikelen aan verschillen van de toon op de website van de overheid zijn. Gelieve te posten constructieve opmerkingen en handige informatie alleen. Voel je vrij om Rant op mijn opiniestukken, maar laten we proberen om deze projecten discussies bruikbare en informatie vol te houden.

? TechnologyOne tekent AU $ 6,2m deal met Landbouw

Wat is het organiserend principe van de hedendaagse digitale werkplek?

Sweet SUSE! HPE haken en ogen zelf een Linux distro

Apple vrij te geven iOS 10 op 13 september, MacOS Sierra op 20 september