WordPress tuning – Temele copil

Temă copil pe blogul blog.sserbanro.info

 

Bine te-am găsit!

Astăzi, îţi dau o veste care, dacă eşti blogger cu oarecare psiune şi vechime, o să te intereseze destul de mult!

Dacă ai un blog mai vechi de un an şi numărul de articole depăşeşte 400, atunci cu siguranţă ţi-ai pus întrebarea “Cum fac să perfecţionez blogul?

Desigur, în primă instanţă, schimbăm teme şi pluginuri. E soluţia cea mai comodă, mai ales la început. Dar povestea pluginurilor, e lungă şi înseamnă multe experimente şi rezultatele, au un cost: VITEZA!

La început, după circa un an de la primele mele tentative de blogging, asta fiind prin 2008, mă încântau pluginurile. Treptat însă, am descoperit că asta înseamnă nişte costuri şi nişte compromisuri.

Aşa că, am început să îmi pun problema să fac cumva nişte modificări la WP, care să mă scutească de unul sau mai multe pluginuri, care încetinesc mult încărcarea paginilor, pe măsură ce numărul lor creşte.

Sigur, există pluginuri care consumă neglijabil şi fac treabă excelentă. Totuşi…

Chestiunea la care m-am împotmolit, a fost evident, practica şi programarea PHP-MySQL + WordPress, fără care, eliminarea unui plugin, iese din discuţie.

Aşa că, m-am apucat de programare WordPress.

Pe celălalt blog însă, treptat subiectele tehnice au rămas în urmă, aşa că, dacă tot am decis să pun aici ce e legat de calculatoare, continui aici.

Principalul obstacol de care m-am izbit după primele modificări în codul WordPress, constă în actualizări. Eram conştient din experienţa anterioară de faptul că orice actualizare, suprascrie codul existent pe server, deci pierd toate modificările. La început, fiind vorba despre mărunţişuri, m-am mulţumit să scriu într-un fişier dedicat modificările şi instrucţiunile necesare plasării lor în codul WordPress.

Actualizările însă sunt destul de dese şi pentru că am început să am mai multe modificări, a început să devină stresantă chestia cu refăcutul după fiecare update…

Aşadar, iată-mă în faţa întrebării:

Ce altă soluţie am?

Am cercetat, m-am documentat şi am găsit!

Comunitatea WordPress, tocmai a împlinit 10 ani în mai, anul acesta şi este o comunitate respectabilă!

Soluţia, se numeşte TEMA-COPIL (child theme).

Principial, datorită multelor dezvoltări ale PHP, din limbaj de scripting, a devenit limbaj de programare. Cum sintaxa şi conceptele sunt preluate mai ales de la CPP (C++), avem şi la WordPress conceptele de încapsulare şi moştenire!

Ce înseamnă asta din perspectiva programării WordPress?

WeordPress ca întreg, poate fi privit ca o clasă. Pe cale de consecinţă, a crea o nouă clasă (conceptul de moştenire) folosind WordPress-core ca superclasă, e soluţia care este cea mai comodă!

Practic, avem acest mecanism la dispoziţie şi, folosind tema preferată, putem crea o nouă temă, treptat, făcând şi testând în timp modificările efectuate!

Avantajul major al unei teme copil, este că ea păstrează absolut toate caracteristicile temei-părinte pe care le considerăm necesare şi pe lângă acestea, ea oferă noi caracteristici, inexistente în tema-părinte.

Mecanismul, din perspectivă programatică, este mult mai simplu decât credeam eu la primele mele tentative de documentare şi este vorba practic despre câteva mici modificări, care constau practic în a crea un director cu numele temei-copil, în subdirectorul “../themes/”, apoi crearea a trei fişiere, care sunt cele mai importante: “style.css”, “functions.php” şi “header.php”.

Acestea coordonează comportamentul de bază al temei şi în aceste fişiere, în principiu, facem cele mai multe modificări.

Despre cum am lucrat cu aceste fişiere, voi vorbi în alt articol.

Ceea ce vreau să spun este faptul că, spre deosebire de varianta editării codului “in place”, cu editorul intern WP, lucrul cu o temă-copil, este mult mai convenabil, deoarece totul poate fi testat şi răs-testat, fără a compromite blogul (situl, magazinul, etc.) şi asta, pentru faptul că tema nouă, se regăseşte în secţiunea “Themes” alături de părintele ei şi oricând putem reveni la tema iniţială, dacă ceva merge prost. Apoi eliminăm ultima modificare, cea care a cauzat malformarea sau malfuncţionarea, revenim la tema-copil şi gata!

Să mai spun şi că folosind acelaşi mecanism, putem “mixa” ce ne place de la mai multe teme şi obţine o temă extrem de personală şi personalizată?

Desigur, e nevoie de studiu şi practică, dar de undeva, trebuie început!

Ca exemplu, am blogul meu “personal” dacă pot spune aşa, în sensul că acolo spun chestii mai puţin tehnice şi mai mult socio-umane unde am început să dezvolt o temă-copil şi am început prin a adăuga “breadcrumbs”, lucru pe care l-am văzut şi l-am testat cu un plugin, dar am renunţat ulterior. În timp însă, blogul s-a mărit şi a devenit greoaie navigarea pe de o parte; pe de alta, am remarcat că cititorii preferă o anumită arie tematică şi, m-am gândit să accelerez navigarea, oferind pe lângă “articole similare” şi posibilitatea listării articolelor din categoria din care face parte articolul curent, mai ales că e destul de dificil să identifici ca cititor această categorie, altfel decât listând categoria.

Mă opresc aici şi, îţi recomand să studiezi Codex-ul WordPress, secţiunea Child Themes. Mie mi s-a părut suficient de explicită şi dacă eu am reuşit, înseamnă că poţi reuşi şi tu! Beneficiile, le vei descoperi în timp şi, într-o anumită măsură, vei găsi şi aici, la mine, o serie de “heads-up”, în secţiunea Tematici → Programare WordPress.

Breadcrumbs pe blog.sserbanro.info

– Citit de 3677 vizitatori

8 thoughts on “WordPress tuning – Temele copil

  1. Foarte interesant subiectul si mai ales chestia aia cu daca am reusit eu poti si tu! Chiar m-ai facut sa cred ca pot si eu, desi n-am nici un fel de cunostinte in domeniu.
    Eu am tema asta a blogului pe care o folosesc si o iubesc de mor, dar e veche si obosita. Dar pur si simplu nu imi vine sa renunt la ea.
    O sa citesc recomandarile tale si poate pot sa-i fac ceva.
    O singura intrebare am: cel care a creat tema nu o sa se supere ca i-o modific? Adica poti face asta cu tema altcuiva?

    • Luiza, mi-e greu să-ţi răspund punctual. Dacă tema e free, de pe Repository, atunci este sub GNU-GPL şi poate fi modificată.
      În altă ordine de idei: răspunsul meu, acoperă copyright, dacă tu te referi la modificarea EFECTIVĂ a temei.
      Ceea ce face o temă-copil însă, e să aplice modificări asupra blogului tău, care e proprietatea ta.
      Toate modificările pe care le faci prin tema-copil, sunt munca ta şi de fapt, tema-părinte, rămâne exact cum a fost!
      Asta e fain, pentru că la un eventual update, toate modificările făcute de tine, rămân valabile, ele găsindu-se într-un director diferit. Altfel, dacă le faci pe temă sau în codul WordPress-core, atunci le pierzi la primul update. Cum ziceam şi în articol, ştiam asta şi era cea mai deranjantă chestie. Fiind eu începător însă, am zis “one step at a time!”. Aşa că, acum a venit stepul cu tema-copil 😀

  2. Foarte interesant articolul! O sa tin cont de aceasta posibilitate de a-ti face o tema-copil pentru diferite testari…. Pentru ca tot facand diferite modificari pe site-ul meu, nu de putine ori am fost pus in incurcatura… Asta pentru ca nu stiu sa lucrez cu HTML, CSS si, mai ales PHP. Ultima oara mi s-a intamplat sa sterg un plugin si sa constat dupa aceea ca mi-a “rupt” codul din tema, pe undeva. Apropo, ar fi interesant sa faci un articol si pe acesta tema: ce faci cand, stergand un plugin, ai probleme cu site-ul? Din cate am inteles, se poate introduce la fiecare plugin, o linie de cod PHP, care impiedica pluginul de a-ti rupe codul daca este sters… Dar n-am utilizat acea linie de cod pentru ca nu ma pricep la PHP si n-am vrut sa stric ceva pe-acolo…

    • Salut, Claudiu!
      Din păcate, cunoştinţe minimale de programare, sunt strict necesare pentru abordarea programării WordPress. De la acele cunoştinţe, se poate pleca în studiul CSS şi PHP. HTML, e destul de uşor de învăţat şi este necesar în multe împrejurări la un blogger care vrea monetizare.
      Evident, aşa cum a zis şi Cristian mai sus, mai e şi posibilitatea cumpărării de instrumente din clasa “Premium”. Adică, teme şi pluginuri gata făcute, testate şi care asigură suport pentru clienţi, fiind produse comerciale.
      Mai este şi o altă categorie, care e un hibrid între gratuit şi comercial şi unde pluginul/tema/scriptul îl primeşti gratuit, dar suportul îl plăteşti. Trialware se numesc în general.
      Articolul de faţă, ca şi altele care au fost şi vor fi publicate, se adresează celor interesaţi să înveţe programare web, adică, HTML, CSS şi PHP, iar pentru cei mai avansaţi şi MySQL.
      Ca fapt divers, după ce am implementat codurile, am avut probleme cu Feed Validator şi a fost nevoie să mă documentez. După ce am studiat, am identificat fişierele care puteau conduce la eroarea de validare XML şi acum, sunt fericitul posesor al unui blog validat XML (e vorba despre feed-urile RSS).
      Pluginuri care deteriorează codul WordPress.
      Din nefericire, ceea ce îţi pot spune, este să fii prudent cu privire la pluginuri, deoarece ele pot conduce la erori destul de grave, inclusiv la pierderea întregului blog. Sunt pluginuri făcute de începători şi ele au multe scăpări. Eu când testez un plugin, mă informez serios, mă documentez şi funcţie de ce găsesc, decid dacă îl bag în teste sau renunţ la idee.
      De altfel, în WordPress Codex, sunt multe recomandări care vizează tocmai securitatea blogurilor şi între ele, o măsură necesară, este BACKUP-ul ÎNAINTE DE ORICE INSTALARE/UPDATE.
      Mai mult, a face instalarea unui plugin fără să ai backup, e un risc costisitor. La fel şi pentru update, dacă e un plugin nou. Eu analizez mult orice update pe care îl fac, tocmai datorită riscurilor. Şi, cu toate acestea, există un risc pe care trebuie să mi-l asum. De aici, necesitatea unui backup, cel puţin săptămânal!
      O să scriu despre astea, dacă tot a venit vorba. 😉

  3. Desigur e de laudat ce spui si e destul de adevarat, insa ce te faci daca nu ei timp sa inveti despre wp totusi ai timp sa creezi?

    Simplu – te cheltui cu o thesis sau genesis unde NU folosesti pluginuri, ele fiind deja integrate in cod, tu totusi putand face ORICE modificari pe o arhitectura deschisa.

    Dai un ban da’ stai in fata, si-l dai o data pentru totdeauna.

    • Fiecare îşi gestionează timpul după ce anume îl interesează să înveţe şi să facă.
      Eu am timp şi pentru CREAŢIE şi pentru STUDIU.
      Şi asta, se poate vedea simplu: Peste 20 de cărţi scrise şi publicate şi încă multe altele, fără să mai iau în calcul şi video.
      La asta se mai adaugă şi administrarea blogurilor, situl membership şi încă multe alte proiecte la care lucrez. Deci, timp este. Depinde ce faci cu el şi câtă experienţă ai în ceea ce faci. Mai depinde şi de obiectivele personale şi încă de mulţi alţi factori, dacă e să vorbim despre time management.

  4. De regula, un plugin nu are voie sa modifice nimic in thema. El poate completa ceva din thema, dar nu trebuie sa aiba drept de scriere in fisierele ei.

    Sfatul meu e sa nu testati nimic pe blogul principal, ci pe un blog de test configurat pe un subdomeniu. Sunt theme si pluginuri care scriu in baza de date diverse chestii ce pot deveni surse de erori. Acele resturi raman chiar daca ati sters pluginurile.

Comments are closed.