WP: Câmpurile definite de utilizator


În interfaţa de administrare tradusă în română, conceptul WordPress de custom fields apare tradus cu "câmpuri definite de utilizator". Adoptând această traducere, vă propun să vorbim despre ele. Pentru foarte mulţi aceste câmpuri reprezintă o facilitate poate inutilă. Ele în fapt ascund o extraordinară putere în WordPress. S-ar putea să credeţi că nu le-aţi văzut niciodată (mă adresez desigur webmasterilor ce lucrează cu WP) dar în fapt ele au fost mereu sub spaţiul de scriere/editare a unui articol. Vedeţi mai jos captura cu câmpurile definite de utilizator WP dinainte de 2.5 şi de după 2.5.

img23

Practic, după cum puteţi vedea acolo, puteţi fie alege un câmp existent (din lista derulantă), fie indica unul nou (unde scrie Cheie), în câmpul mare notat cu Valoare urmând evident să scrieţi valoarea. Acum vine întrebarea firească: la ce bun? În codexul de pe WordPress.org găsiţi desigur o pagină dedicată temei. Ideea ar fi următoarea: un articol WordPress are mereu asociate câteva câmpuri: titlu, conţinut, dată, autor, slug… Dar dacă doriţi mai mult? WordPress îmi place mult pentru că nu te limitează (prea mult :) ) ci pune la dispoziţie acele instrumente necesare particularizării după gusturile proprii.

Să spunem că aveţi un blog în care scrieţi despre filme. Aţi putea să scrieţi în articol regizorul, anul producţiei, distribuţia ş.a. Dar dacă le veţi scrie în câmpuri definite de utilizator atunci veţi putea la un moment dat crea legături între filmele realizate de acelaşi producător sau filme în care au jucat acelaşi actor ş.a.m.d. Nu în mod magic, desigur. Trebuie să ştiţi PHP, dar pentru mulţi webmasteri aceasta intră în definiţie. Sau poate doriţi să vă folosiţi de WordPress pentru a construi o bază de date despre… insecte, şi atunci la fiecare insectă aveţi nevoie de câmpuri particulare cu specia, dimensiunea şi mai ştiu eu ce e specific acestui subiect. O altă idee: poate aţi văzut bloguri în care articolele au definite o imagine (thumbnail), pentru "depistarea" lor vizuală într-o listă. Cum se face aşa ceva? Tot cu câmpuri definite de utilizator. WordPress.org ilustrează altcumva: poate doriţi să asociaţi fiecărui articol informaţii gen starea Dvs (bine dispus, prost dispus, plat…), ce citiţi sau ascultaţi acum ş.a. Oricare ar fi motivaţiile, câmpurile definite de utilizator vă permit să întindeţi limitele pe care le are inerent WordPress-ul.

Dacă vă veţi uita în lista de câmpuri (chei) deja existente (unde scrie Selectează) s-ar putea să aveţi deja câmpuri. Cum aşa? Pentru simplul fapt că mai toate pluginurile ce memorează informaţii per articol se folosesc de câmpurile definite de utilizator. Dacă aveţi instalat pluginul RunPHP, ce permite rularea de cod PHP în articolele alese de Dvs, va fi automat o cheie asociată runPHP. Dacă folosiţi pluginuri ce urmăresc numărul de lecturi la un articol sau notarea lui, din nou aceste informaţii vor fi prezente sub forma unor câmpuri definite de utilizator.

Reclama a fost făcută. Pentru unii facilitatea nu va prezenta interes (depinde de blogurile ce le întreţineţi cu WP). Pentru toţi ceilalţi vine următoarea întrebare firească: cum folosesc aceste câmpuri? Adăugarea lor e simplă (din păcate doar din back-end-ul WP, eu nu am găsit metodă de a le indica dintr-un client de blogging… deşi s-ar putea scrie un plugin) aşa că rămâne să le fructificăm. Aici vine PHP-ul în acţiune. Sunt trei funcţii esenţiale:

Cu aceste funcţii puteţi uşor interoga câmpurile definite de utilizator pentru a afla dacă o anumită cheie a fost definită şi ce valoare are. De exemplu într-un blog public articole la care am dorit să asociez câmpul Traducere. Pentru a-l fructifica, în single.php, după informaţiile despre titlul, data publicării ş.a. dar înainte de conţinutul articolului am inclus următorul cod PHP.

$mykey_values = get_post_custom_values(’Traducere’);
foreach ( $mykey_values as $key => $value )
   echo "<em>Traducere:</em> " . $value . "<br>";

Pot fi şi utilizări mai complexe. De exemplu aţi putea să vă scrieţi pagini proprii în care să selectaţi articolele după un anumit câmp definit de utilizator. De exemplu pentru a crea pagina regizorului X (dacă e vorba de un blog de filme) sau pagina cu articole scrise când eraţi bine dispus (dacă aţi pus un câmp cu informaţii despre starea – mood – Dvs). Puteţi apela la WP_Query, funcţie documentată pre WP 2.3, mai slab după. Şi totuşi, cu puţină muncă (eu am reuşit în final) veţi reuşi din PHP să "subţiaţi" lista returnată la doar articolele ce respectă condiţia Dvs pentru câmpurile definite de utilizator. Succes!

PS: Şi pe CNet.ro folosim aceste câmpuri pentru a marca articolele zilei.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 4,00 din 5)
Loading...Loading...

2 comentarii

  1. Mihnea spune:

    Salut Radu,

    Am o problema mare cu un plugin numit Custom Fields Template. Incerc sa creez un box in subsolul articolului, asemanator cu cel de la Tech Crunch. N-am priceput exact cum se afiseaza campurile astea in pagina articolului.

    Pluginul il gasesti aici:
    http://wordpress.org/extend/plugins/custom-field-template/
    Se pot face niste chestii interesante pe baza pluginului respectiv.

    Bafta.

  2. Mihnea spune:

    Tot nu reusesc sa le afisez, cred nu inteleg sintaxa php a functiilor pe care le-ai enumerat.

    Stii vreun tutorial de unde pot sa invat prin exemple? De pe wordpress.org n-am inteles mare lucru :( .

    Merci.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *