mihaistefan.ro

Blog de motociclism, programare, păreri personale și dat cu bâta-n baltă

Învață WordPress: Partea I – Introducere în WordPress

De ce WordPress?

După cum am promis săptămâna trecută, astăzi o să mă apuc de treabă, începând să lucrez la tema de WordPress care îmi va aduce la viață blogul ăsta aflat în comă. Am ales WordPress în primul rând pentru că de acest CMS mă leagă începuturile mele în ale web development-ului, acum mai bine de 5 ani și cred că este o bună introducere în lumea dezvoltării moderne de aplicații web și website-uri, cu toate neajunsurile lui.

Avantaje

  • O bază foarte mare de utilizatori. Fiind susținut din spate de Automattic, WordPress a avut parte de mult marketing, astfel câștigând adepți.
  • Documentație foarte bine pusă la punct. Găsești rezolvare cam pentru orice problemă care îți poate trece prin cap
  • Foarte multe plugin-uri și teme. Pentru că a fost gândit modular, au apărut multe teme și plugin-uri, astfel încât poți să faci foarte multe chestii doar cu instalarea unor pluginuri. De la un magazin on line până la o adevărată rețea socială.
  • User Friendly. Foarte multe opțiuni pot fi modificate într-o interfață prietenoasă, în interfața de administrare, care arată foarte bine și are funcționalități bine puse la punct.
  • În general, backwards compatible. Pentru pluginurile și temele care se găsesc în galeria WordPress, nu prea trebuie să îți faci probleme că în cazul unui update vei avea probleme de compatibilitate.
  • Update foarte ușor. Atât pluginurile, temele, cât și baza WordPress se updatează cu un click, dacă permisiunile și ownerul fișierelor sunt setate corect.
  • Multiplatformă. Merge atât pe *nix, cât și pe Windows, pe diferite servere web (Apache, Nginx, IIS)

Dezavantaje

  • Programarea procedurală se amestecă cu programarea OOP într-un stil destul de haotic.
  • Timpul de încărcare este destul de mare față de alte CMS-uri, mai ales în cazul folosirii mai multor pluginuri.
  • Are destule vulnerabilități de securitate, deși acestea sunt fixate de la update la update.
  • O eroare de programare sau o vulnerabilitate într-un plugin/temă poate afecta tot site-ul.

Generalități

Înainte să ne apucăm pe bune de treabă, să discutăm un pic despre structură. Practic, există 3 mari secțiuni, împărțite în 3 mari directoare: wp-admin, wp-includes, wp-content.

wp-admin

Aici se găsesc toate fișierele care sunt utilizate în interfața de administrare. JS-uri, CSS-uri, scripturi PHP și nu numai.

wp-includes

Aici se găsesc toate fișierele de care e nevoie peste tot. Practic aici e motorul WordPress. Ca niște developeri cuminți ce suntem nu umblăm niciodată aici, și dacă umblăm suntem siguri că la următorul update, schimbările pe care le facem vor fi suprascrise.

wp-content

Asta este secțiunea care ne interesează, pentru că vom găsi pluginurile, temele și uploadurile. Practic, noi aici dezvoltăm tot ce vrem să dezvoltăm, folosindu-ne de clasele, funcțiile și metodele definite în wp-includes și wp-admin.

Instalarea WordPress

Nu o să insist aproape deloc pe această parte, pentru că sunt alții care au făcut-o mult mai bine decât aș putea s-o fac eu, așa că voi da link-ul către pagina dedicată acestei operațiuni aflată în Codex:

http://codex.wordpress.org/Installing_WordPress

La fel, nu o să insist asupra faptului că pentru a rezolva probleme cu succes într-un domeniu cum e IT-ul, aveți nevoie să cunoașteți o limbă străină, în acest caz engleza.

De asemenea, dacă nu știți ce e ăla un server și la ce folosește, n-ați auzit vreodată de un sistem de gestiune a bazelor de date, vă recomand acest articol:

http://en.wikipedia.org/wiki/LAMP_(software_bundle)

Concluzie

După cum am zis în articolul precedent, plec de la premisa că ați mai avut de a face cu programarea și cu web-development-ul în general, așa că mă voi concentra strict pe dezvoltarea temei folosindu-mă de frameworkul din WordPress și de alte tool-uri care mi s-au părut utile. Repet, însă, că sunt deschis la orice fel de întrebări legate și de celelalte părți ale lumii ăsteia.

Leave a Reply

Your email address will not be published. Required fields are marked *