Sunteți pe pagina 1din 19

Wordpress – Tutorial

Capitolul 4 - Tur al nucleului


Pentru a intelege cum se extinde WP corespunzator, trebuie in primul rand invatate functiile de nucleu
Wordpress

WP se ocupa de tot codul si de problemele logice pentru tine

Nucleul WP este cea mai buna resursa de a intelege cum WP lucreaza

Daca esti vreodata nesigur despre un asptect al functiilor WP, doar trebuie sa faci
sapaturi in cod

Toate rapsunsurile sunt acolo, este doar o chestiune de a le gasi si de a le intelege

Ce este in nucleu

Nucleul WP este oferit de un set de fisiere care sunt parte a download-ului WP


original

Acestea sunt fisiere de nucleu necesare ca WP sa functioneze bine

Fisierele de nucleu se asteapta sa sa schimbe doar cand upgradam WP la o noua


versiune

Nucleul nu include fisierele custom pentru pluginuri, teme, setari de DB, fisierul
.htaccess si asa mai departe

Nucleul nu include fisiere media pe care le-ai uploadat in WP

Fisierele adaugate in WP dupa instalare sunt in afara nucleului

In WP, fisierele de nucleu sunt fisiere PHP, dar ele contin de asemenea CSS, JS,
HTML si fisiere pentru imagini.
Aceste fisiere controleaza tot despre WP, incluzand cum pagini din continut sunt
generate pentru a fi afisate, incarcarea temelor si pluginurilor, incarcarea
optiunilor si setarilor si multe altele

Pe scurt, nucleul contine mai multe tipuri de functii:

postari, pagini si continut custom – creare, sortare, primire si interactiune cu


majoritatea continutului din WP

( discutia despre loop-ul care controleaza continutul de afisat si ordinea sunt


discutate in cap 5)

tipuri de postari, taxonomii si metadate – Totul de la custom post types, taguri si


categorii pana la taxonomii create de user

teme – functii pe care le suporta pentru teme WP

(creearea de teme este discutata in cap 9)

actiuni, filtre si pluginuri

( framework pentru extinderea WP prin pluginuri este discutata in cap 8)

utilizatori si autori

(creearea si gestionarea controlului la accesul site-ului tau si cheia de securitate


sunt discutate in cap 12 si 15)

feed-uri, formatare si comentarii – acestea sunt discutate cand este nevoie in


carte

WP vine cu 2 pluginuri preinstalate: Akisment si Hello Dolly

Acestea exista in directorul de plugin inauntrul wp-content


Cele 2 pluginuri nu sunt considerate a face parte din nucleul de fisiere WP,
deoarece ele trebuie activate pentru a functiona si pot fi foarte usor sterse

WP vine de asemenea cu 3 teme preinstalate :

Twenty Twelve

Twenty Thirteen

Twenty Fourteen

Utilizarea Nucleului ca referinta

Utilizarea nucleului WP ca referinta este o cale rapida si usoara de a invata despre


functionalitatea WP

Intelegerea a cum sa navighezi prin fisierele de nucleu te poate ajuta sa raspunzi


la intrebari cand dezvolti pt WP
Pentru a folosi nucleul ca referinta, trebuie sa stii la ce sa te astepti in fisierele nucleu

Cele mai multe fisiere nucleu contin documentatie in forma comentariilor de cod

Tipic, un comentariu de cod este afisat in headerul fisierului si ofera un sumar de ansamblu asupra
fisierului de nucleu pe care il vizionati

Pentru a vedea acestea, deschideti fisierul wp-login.php localizat in directorul root al WP. Veti observa
ca partea de sus a fisierului are un comentariu de header care descrie functia fisierului.

/**

* WordPress User Page

* Handles authentication, registering, resetting passwords, forgot password,

* and other user handling.

* @package WordPress

*/
Toate fisierele de nucleu, altele decat imaginile, pot fi vazute cu un program editor de text

Este util ca acesta sa aiba text-highligting

Fiecare functie este explicata in detaliu direct, inainte de declaratie, intr-un bloc de comentarii avand
template

Urmatorul este un template definit pentru a documenta o functie WP

/**

* Short Description

* Long Description

* @package WordPress

* @since version

* @param type $varname Description

* @return type Description

*/

Gasirea functiilor

Cautarea unei functii in nucleu(eng: core) este cea mai rapida metoda de a invata cum o functie specifica
WP functioneaza

Se pot vedea exact ce parametrii sunt permisi sa se trimita catre functie, si de asemenea ce face functia
si ce valori returneaza

Nu tot ce este in WP este o functie, dar este un punct bun de a incepe

Se pot cauta functii cu editorul de text (de exemplu se poate cauta is_super_admin()) :

/**

* Determine if user is a site admin.


*

* @since 3.0.0

* @param int $user_id (Optional) The ID of a user. Defaults to the current user.

* @return bool True if the user is a site admin.

*/

function is_super_admin( $user_id = false ) {

if ( ! $user_id || $user_id == get_current_user_id() )

$user = wp_get_current_user();

else

$user = get_userdata( $user_id );

if ( ! $user || ! $user->exists() )

return false;

if ( is_multisite() ) {

$super_admins = get_super_admins();

if ( is_array( $super_admins ) && in_array( $user->user_login, $super_admins ) )

return true;

} else {

if ( $user->has_cap('delete_users') )

return true;

return false;

}
Explorarea nucleului

Functions.php:

Fisierul functions.php contine functiile principale de API.

Aceste functii sunt folosite pentru a interactiona usor cu Wordpress folosind o metoda standardizata

Pluginurile, temele si fisierele din core folosesc aceste functii:

current_time() – returneaza momentul de timp curent

force_ssl_login() – Cere login cu ssl la wordpress

wp_nonce_field() – adauga campuri ascunse nonce formurilor. Un camp/field nonce este utilizat in
scopuri de verificare in WP

asbint() – converteste o valoare la un intreg nenegativ

wp_die() – omoara executia WP si afiseaza un mesaj HTML

Option.php

contine optiunile principale WP ca functii de API

add_option(),udate_option(),get_option()

set_transient(), get_transient(), delete_transient() – un transient este o optiune cu timp de expirare

add_site_option(),update_site_option(),get_site_option() – functii pentru a creea, updata si afisa optiuni


de site

Formatting.php

contine functii de formatare

esc_attr() – folosit pentru a scapa/escape un string pentru atribute HTML

esc_html() - folosit pentru a scapa/escape un HTML

esc_url() – folosit pentru a verifica si a curata/clean un URL

sanitize_text_field() – sanitizeaza/dezinfecteaza un string de la utilizator sau din baza de date

is_email() – verifica daca un email e valid

capital_P_dangit() – filtru faimos care forteaza P in WordPress sa fie cu litera mare cand este afisat in
context
Pluggable.php

The pluggable functions fi le lets you override certain core functions of WordPress. WordPress loads
these functions if they are still undefi ned after all plugins have been loaded. Some of the more
commonly used functions include:

wp_mail() —Sends e‐mail from WordPress

get_userdata() —Returns all user data from the specifi ed user ID

wp_get_current_user() —Returns user data for the currently logged‐in user

wp_set_password() —Updates a user’s password with a new encrypted one

wp_rand() —Generates a random number

wp_logout() —Logs out a user, destroying the user session

wp_redirect() —Redirects to another page

get_avatar() —Returns the user’s avatar

User.php

The user.php fi le contains the WordPress User API functions, including:

get_users() —Returns a list of users matching criteria provided

add_user_meta() , get_user_meta() , delete_user_meta() —Used to create, retrieve, and delete user


metadata

username_exists() —Checks if a username exists

email_exists() —Checks if an e‐mail address exists

wp_insert_user() and wp_update_user() —Create and update a user account

Post.php

The post.php fi le contains the functions used in the post process of WordPress, including:

wp_insert_post() —Creates a new post

get_post() —Retrieves a single post with all post data

get_posts() —Retrieves a list of the latest posts’ matching criteria

add_post_meta() —Creates metadata (custom fi eld data) on a post


get_post_meta() —Retrieves metadata (custom fi eld data) on a post

get_post_custom() —Returns a multidimensional array with all metadata (custom field) entries for a
post

set_post_thumbnail() —Sets a featured image on a post

register_post_type() —Registers a custom post type in WordPress

Taxonomy.php

The taxonomy.php file contains the functions used by the WordPress Taxonomy API. Taxonomies are
used to manage the hierarchical relationships of metadata such as categories and tags (described in
Chapter 6 ) and can also be extended, as you’ll explore in Chapter 7 . Functions in this fi le include:

register_taxonomy() —Register a custom taxonomy in WordPress

get_taxonomies() —Return a list of registered taxonomies

wp_insert_term()

Functii deprecate

Cand o noua versiune de WP este developata, anumite functii pot sa deviena deprecate : nu sunt scoase
din WP, dar nu ar mai trebui folosite in pluginuri si teme in viitor

In acest caz o noua functie a fost creeata pentru a inlocui functia deprecata

Pentru functia deprecata get_current_theme() :

/**

* Retrieve current theme name.

* @since 1.5.0

* @deprecated 3.4.0

* @deprecated Use (string) wp_get_theme()

* @see wp_get_theme()

*
* @return string

*/

La modul general, functiile deprecate nu sunt de obicei scoase din WP, dar nu este nici o garantie ca o
functie deprecata nu va fi scoasa din nucleul WP

Codexul WP si referinte la cod

WP are diferite resurse online care sunt extrem de utile cand inveti si lucrezi cu WP

Aceste resurse ar trebui bookmarked pentru referinta rapida si sunt folosite ca referinta rapida de
incepatori si experti WP

In acesta sectiune se acopera Wordpress Codex si Code Reference

Referinte la functii

Functiile WP sunt descrise in Codex cu o pagina de referinta la fiecare functie API in parte

Aceste pagini explica in detaliu modul in care o functie WP functioneaza

Ne putem gandi la Function Reference ca o varianta online si expandata a documentatiei de functii inline

Cea mai utila sectiune din Function Reference este sectiunea Examples
Pentru exemplul get_user_data() este afisat :

<?php $user_info = get_userdata(1);

$username = $user_info->user_login;

$first_name = $user_info->first_name;

$last_name = $user_info->last_name;

echo "$first_name $last_name logs into her WordPress site with the user name of $username.";

?>

Acesta este un exemplu foarte simplu, dar impreuna cu informatii aditionale de referinta te poate ajuta
sa inveti usor o functie noua si cum sa o folosesti corespunzator in cod

Majoritatea functiilor de API WP sunt bine documentate, dar nu toate functiileau o pagina de Function
Reference in Codex

Wordpress API

WP ofera mai multe API-uri diferite pentru a te ajuta sa interactionezi cu el.

Cele mai multe API insereaza referinte in cod non-core care va fi adaugat in directorul wp-content prin
inregitrarea punctelor de intrare in WP

Fiecare API este documentat in WP cu functiile utilizate

API de Plugin

este utilizat pentru developarea pluginurilor custom

Codex-ul ofera o documentatie extensiva de Plugin API

Exista o introducere in hooks, actiuni si filtre , principalele metode de a interactiona cu WP dintr-un


plugin construit custom

http://codex.wordpress.org/Plugin_API

API de Widgets

Utilizat pentru a creea si mentine widget-uri in pluginurile tale

Widgeturile apar in Appeareance->Widgets si pot fi utilizate pentru a defini bara laterala


http://codex.wordpress.org/Widgets_API

API de Shortcode

Utilizat pentru a adauga shortcodes in plugin. Un shortcode este un cod macro adaugat unui post

Acesta permite pluginului sa preia acel shortcode si sa execute diferite comenzi specifice si sa afiseze
elemente in loc in postare

Shortcodes pot de asemenea accepta parametrii pentru a schimba output-ul

Exemplu de Shortcode : [gallery]

Adagarea [gallery] in postare afiseaza automat toate imaginile uploadate la acel post intr-un stil de
galerie. Cand se editeaza un post, vei vizualiza shortcode-ul [gallery], dar vizualizarea pe partea publica a
WP va afisa galeria de imagini

http://codex.wordpress.org/Shortcode_API

API de HTTP

Utilizat pentru a trimite request-uri HTTP din WP

Acest API este o metoda standard de a prelua continut dintr-un UL extern

In principiu, ia URL-ul oferit si testeaza o serie de metode PHP pentru a trimite request-ul

Metodele curente HTTP API PHP testate sunt cURL, Streams si FSockopen

Se poate utiliza pluginul Core Control pentru a specifica metoda folosita

Folosind HTTP API se poate interactiona usor cu Google Maps pentru a genera dinamic harti si puncte

HTTP API poate de asemenea interactiona usor cu Twitter API, permitanduti sa postezi/afisezi tweet-uri
direct din WP

Settings API

este utilizat pentru a creea pagini de setari

este utilizat pentru a creea si gestiona optiuni custom pentru pluginuri si teme

Principalul sau avantaj este securitatea

acest API sanitizeaza toate datele si setarile salvate de utilizator

aceasta insemna ca nu trebuie sa ne facem griji pentru amenintari, validari de date sau atacuri de tip
cross-site-scripting XSS cand salvam date de setari
http://codex.wordpress.org/Settings_API

Options API

Utilizat pentru a stoca informatii in baza de date

ofera o metoda usoara pentru a creea, updata, receptiona si sterge valori de optiuni

http://codex.wordpress.org/Options_API

Dashboard Widgets API

este utilizat pentr a creea widgeturi pentru admin dashboard

Widgeturile adaugate din API automat contin toate caracteristicile jQuery pe care admin dashboard
widgest le au, incluzand drag/drop, minimize si ascundere prin optiuni de ecran

http://codex.wordpress.org/Dashboard_Widgets_API

Rewrite API

Utilizat pentru a creea reguli de rescriere custom. Acest API permite creearea regulilor de rescriere cum
sunt cele din fisierul .htaccess

se pot creea de asemenea taguri de structuri permalink (cum este %postname%) si puncte statice (cum
este /my‐page/)si chiar adauga link-uri aditionale de feed

http://codex.wordpress.org/Rewrite_API

Controverse privind Codex

acuratetea codex-ului este de discutat

WP se dezvolta cu o viteza buna si Codex-ul trebuie sa mentina aceasta viteza

Code Reference

este o resursa noua online pentru WP

a fost lansata in primavara 2014

este o resursa auto-generata online care permite developerilor sa gaseasca infomatii despre functii,
clase, hooks si altele
Nu hack/schimbati nucleul

explorarea nucleului este ok, schimbarea sa nu este

wordpress trebuie updatat la zi, deoarece poate avea vulnerabilitati de securitate in caz contrar

Capitolul 5 – The Loop


In acest capitol veti invata:

intelegerea fluxului loop-ului si unde poate fi utilizat

determinarea continutului afisat folosind loop

customizarea loop cu diferite accese de granularitate

utilizarea de template tags

intelegerea variabilelor globale si relatia lor cu procesarea Loop

lucrul in afara Loop

Loop-ul se refera la modul in care wp determina continutul(postari, pagini sau continut custom) pentru a
afisa pagina pe care o vizitati

Loop-ul poate afisa o singura bucata de continut sau un grup de postari si pagini care sunt selectate sa se
itereze/loop prin ele, de aceea se cheama LOOP

Acesta este modul in care WP afiseaza postari by default

Loop-ul selecteaza postari din baza de date MySql bazat pe un set de parametrii, si acei parametrii sunt
determinati tipic de URL-ul utilizat pentru a accesa site-ul web WP

De exemplu, o pagina acasa/home poate afisa toate postarile de blog care sunt datate cu o luna
particulara sau un an

Wordpress mapeaza aproape orice parametru despre postari intr-o variabila de selectie, oferind o baza
pentru un numar de diferite cai de a altera continutul algoritmului de selectie al loop-ului

Este o cale usoara de a customiza ce continut este afisat, si unde, pe website cu o intelegere a modului
in care Loop-ul translateaza un URL in ce vedeti cand accesati link-ul
acest capitol discuta cum functioneaza, unde este folosit loop-ul, si flow-ul logic al Loop-ului, precum si
cum sa customizam Loop-ul folosind mai multe functii diferite si metode de acces de date disponibile in
WP. Variabilele globale care mentin starea curenta sunt de asemenea discutate cu utilizare in afara Loop

Intelegerea Loop-ului

Prin intelegerea modului in care Loop-ul functioneaza, va vom ajuta sa intelegeti cum il puteti controla.

Controlul Loop-ului astfel incat sa obtinem exact continutul pe care il dorim este una din cele mai utile
skill-uri in developing

Deoarece Loop-ul este inima fiecarei teme WP, sa fim capabili sa customizam continutul afisat deschide
noi porti in a face WP sa arate si sa se comporte cum dorim

Pentru a intelege loop-ul, ne ajuta sa spargem in pasi modul in care WP genereaza continut de pagina:

URL-ul este potrivit cu fisierele existente si directoarele in instalarea WP. Daca fisierele sunt acolo, este
incarcat pe Web Server. WP nu este implicat in aceasta decizie; este despre serverul web si fisierul
.htaccess creeat in WP sa decida daca URL este ceea ce va fi gestionat de serverul web sau transformat
in query de continut WP. Aceasta a fost discutata in permalinks, Capitolul 2

Daca URL-ul nu incarca un fisier de nucleu WP, va fi parsat pentru a determina ce continut sa incarce.
Serverul Web incepe sa incarce nucleul prin fisierul index.php pentru a incepe setup-ul pentru Loop. De
exemplu, cand vizitam un tag specific precum : http://example.com/tag/bacon, WP va determina ca
vizualizam un tag si incarca template-ul apropiat, selecta postarile salvate cu acel tag, si genera output
pentru pagina de tag

Magia translatiei URL-catre-selectie-continut se intampla in metoda parse_query() din obiectul


WP_Query pe care WP l-a creeat mai devreme in acesta procesare. WP parseaza URL mai intai intr-un
set de parametrii de query care sunt descrisi in sectiunea urmatoare. Toate string-urile de query dintr-
un URL sunt trimise in WordPress pentru a determina ce continut sa afiseze, chiar daca arata ca
pathname-uri formatate dragut. Daca site-ul foloseste pretty permalinks, valorile dintre slashes in aceste
permalinks sunt parametrii pentru query string/ stringul de interogare

Wordpress apoi converteste parametrii de specificatie query intr-o baza de date MySQL pentru a regasi
continutul. Workhorse aici este metoda get_posts() din obiectul WP_Query care este descris mai tarziu
in acest capitol. Metoda get_posts() ia toti acesti parametrii de interogare si ii transforma in instructiuni
SQL, eventual invocand stringul SQL pe serverul bazei de date MySQL si exrage continutul dorit.
Continutul returnat de baza de date este apoi salvat de obiectul WP_Query pentru a fi utilizat in Loop-ul
Wordpress si stocat in memoria cache pentru a accelera alte referinte facute la acelasi post facute
inainte ca o alta interogare de baze de date sa fie executata.
Odata ce continutul este primit, WP seteaza toate tagurile conditionale is_, precum is_home() sau
is_page(). Acestea sunt setate ca parte a executiei default query bazata pe parsarea URL, si s-ar putea sa
fie cazuri cand este necesar sa resetati aceste taguri.

Wordpress alege un template din dashboard-ul temei bazat pe un tip de query si pe un numar de postari
returnate – de exemplu, un singur post sau un query doar pentru categorie – si output-ul query-ului este
pasat catre invocatia default a Loop-ului

Loop-ul poate fi customizat pentru diferite propuneri de site-uri. De exemplu, un site de stiri ar putea
folosi Loop-ul pentru a afisa ultimele stiri. Un director de afaceri ar putea folosi Loop-ul pentru a afisa
afaceri locale alfabetic dupa nume, sau intotdeauna sa puna postari despre afacerile sponsorizate in
partea de sus a paginii afisate

Un site e-commerce poate utiliza Loop-ul pentru a afisa produse incarcate in website

Posibilitatile Loop-ului sunt nenumarate cand customizam Loop-ul in WP deoarece ne ofera control
complet asupra continutului care este selectat si a ordinii in care este randat pentru afisare

De la parametrii de query la SQL

Odata ce parametrii de query au fost stabiliti, fie prin dezasamblarea URL-ului oferit de reader sau
avandu-i setati explicit printr-un loop customizat, metoda get_posts() a obiectului WP_Query
tranlateaza acesti parametrii in SQL pentru o interogare in baza de date. In timp ce puteti exercita
control asupra unui tip, selectie sau ordonare prin parametrii de query, nucleul/core WP de asemenea
expune filtre pentru a ne permite sa schimbam SQL generat pentru un control si mai fin asupra selectarii
continutului si filtrarii

formatul de baza al query SELECT este : SELECT fields FROM table WHERE conditions

Wordpress simplifica punerea de taguri multiple la un post, sau punerea unui post in mai mult de o
categorie, dar bazele de date relationale nu sunt adepte in gestionarea acestor relatii ierarhice si de
retea

Asa cum vom vedea in capitolul 6, WP data model foloseste tabele multiple pentru a gestiona aceste
relatii complexe, dar aceasta face ca interogari precum : “gaseste toate postarile cu tag-ul bacon” mai
dificil de executat

de exemplu, pentru a selecta postarile cu tagul bacon, un SQL JOIN este necesar mai intai pentru a gasi
bacon in metadata taxonomy, constuirea intermediara, punerea in memorie a tabelelor de postari care
au tag-ul bacon, si apoi selectarea postarilor al caror ID apare atat in tabelul intermediar cat si in tabelul
cu continut principal WordPress. (se numeste produs cartezian sau inner join a 2 sau mai multe tablele)

In capitolul 8 se va sapa mai mult in pluginuri si modul in care aceste a se ataseaza pentru a filtra si a
actiona insertia de puncte hook in nucleul/core WP.

In generarea de request-uri SQL, exista un numar de filtre care sunt invocate pentru a oferi autorilor
plugin-ului legare-tarzie si control explicit asupra SQL care va fi executat

De exemplu, considerati un plugin care schimba selectia postarilor in functie de custom post metadata
si context pe care pluginul le mentine intr-un fisier de baza de date separat

Pluginul tau va folosi filtrul posts_join pentru a rescrie clauza JOIN, adaugarea unui alt tabel si camp care
se potriveste cu clauza pentru a expanda in viitor multimea de selectie

Daca doriti sa explorati core pentru detalii privind generarea SQL, cele mai multe parsari query-to-
request sunt facute in wp-includes/query.php si munca de JOIN este setata in wp-includes/taxonomy

O nota finala asupra generarii de SQL: WP face o foarte buna treaba in construirea de URL-uri canonice,
adica una si doar o referinta pentru un post particular

Motoarele de cautare considera notoriu http://example.com/bacon si http://example.com/2012/bacon


ca pagini distincte, chiar daca se refera la aceeasi piesa de continut (aceasta este facuta pentru a
descuraja practici notorii ca link farming, unde URL-uri distincte sunt generate pentru a creste
popularitatea unei singure tinte)

O parte a functiei de parsare URL in nucleul WP incearca sa curete si sa redicteze URL-urile catre forma
canonica; aceeasi functie face de asemenea efort pentru a returna continut relevand mai degraba decat
pagina 404. Ca rezultat, daca o incercare de a incarca o pagina al carui nume esueaza, WP va insera un
modificator LIKE in clauza WHERE care contine numele postarii

De exemplu, daca un utilizator ofera URL: http://example.com/2015/lecter dar nu exista nici o postare
cu titlul ‘Lecter’, clauza LIKE va portrivi orice postare care iincepe cu Lecter, precum “Lecter Fish IPA
Review”. URL-uri canonice si potrivirea/matching “like name” sunt parte dintr-un mare labirint complex
de URL rewriting si UX placut care incearca sa genereze o pagina mai degraba decat o eroare 404.

Intelegerea continutului in WP

Inainte de a descrie Loop-ul in detaliu, sunt importante de inteles principalele tipuri de continut in WP

De la inceput, WP are setate 2 tipuri de continut: postari si pagini. Ce veti vedea in capitolul 6 este ca
toate tipurile de continut sunt inmagazinate in aceeasi baza de date MySql, fiind diferentiate de “post
type”. De la versiunea WP 2.9. este posibil sa avem propriile custom types, care este continut custom in
WP. De exemplu, putem avea un custom post Eveniment pentru a inregistra evenimente in WP
In acest capitol, continutul este referit ca “postari”, dar este important sa tinem minte ca postarile pot fi
de orice tip

Custom post types sunt acoperite in cap 7

Punerea Loop in context

The Loop este inima unei teme, ceea ce controleaza cum continutul este afisat. Este o conexiune
functionala intre baza de date MySQL si HTML care este afisat in browserul vizitatorului

In principiu, oriunde un post sau o pagina sunt afisate, WP va folosi Loop-ul

Acesta poate fi un singur post sau pagina, un loop de postari, sau o secventa de loop-uri cu diferite
optiuni de afisare

Cele mai multe teme WP au un header, un footer si un element sidebar

Figura 5-1 arata cum loop-ul este plasat direct in mijlocul acestor evenimente, creeand aria de continut a
web-site-ului. Aceasta sectiune a web-site-ului este de obicei dinamica si se va schimba cand navigam
prin ea
Loop-ul este utilizat, implicit, in fisierele de template. Loop-uri custom pot fi creeate oriunde in fisierele
de tema template, asa cum figura 5-2 afiseaza. Loop-uri custom sunt de asemenea utilizate in pluginuri
si widget-uri. Loop-urile pot fi folosite oriunde in WP, dar exista diferite metode pentru a creea loops
custom depinzand unde vor fi utilizate, si potentialul efect lateral pentru fiecare constructie difera

Pot fi utilizate Loop-uri multiple in fisierle de teme. Loop-urile custom pot fi creeate in header, in
sidebars, in footer si in ariile de continut principal ale site-ului

Nu exista o limita a nr de loop-uri care pot fi afisate in website

Aveti in minte ca loop-ul este efectiv un query in baza de date pentru a selecta continut si apoi o iterare
peste selectie pentru a o afisa

Loop-ul default foloseste context din URL-ul vizitat pentru a face selectia, dar putem sa il ajustam si sa
efectuam o intergorare in baza de date cu continut WP pentru a implementa orice numar de procese de
management al continutului

Urmatoarea sectiune se refera la controlul fluxului/flow al Loop-ului si functii de template WP oferite


pentru a customiza modul in care continutul este afisat in timp ce este gestionat in interiorul unui loop

Fluxul loop-ului

Loop-ul foloseste unele conditii standard de programare pentru a determina ce si cum sa afiseze. Prima
instructiune in loop este instructiune if care verifica daca exista postari, deoarece s-ar putea sa nu avem
postari in categoria sau tagul specificat.

Daca exista un context, instructiunea while este utilizata pentru a initia Loop-ul si cicla prin toate
postarile sau paginile care trebuie afisate.

In final, functia the_post() este apelata pentru a construi date de post si sa il faca accesibil altor functii
WP.

Odata ce datele de post au fost construite, continutul Loop-ului poate fi afisat in orice format dorim
daca va intrebati cum output-ul din acest query de baze de date este gestionat cand nu exista variabile
trimise ca parametrii,raspunsul sta in variabila globala $wp_query, care este instanta a clasei WP_Query
care este referentiata de functii in loop-ul simplu. Este, in efect, query default pentru loop

de notat ca inainte ca loop-ul default sa fie apelat,WP deja a apelat metoda get_posts() din default
query object pentru a construi o lista de continut apropiat pentru URL-ul vizualizat. Loop-ul in acest caz
a fost incarcat cu afisarea unei liste de postari. Mai tarziu, ne vom uita cum putem sa avem control
asupra selectiei posturilor, dar pentru moment este safe sa presupunem ca baza de date a fost
interogata, si ca rezultatele sunt stocate in $wp_query cand Loop-ul este invocat

S-ar putea să vă placă și