Cum afli calea relativă către directorul temei de wordpress

Dacă v-ați jucat mai mult prin wordpress, și eventual ați avut de făcut pagini separate de wordpress (e.g. inbox-uri sau forumuri) în care să folosiți headerul, footerul sau/și sidebar-ul din tema de wordpress , cu siguranță că ați observat că, deși ați inclus fișierul wp-load.php,  funcția  get_template_part() nu mai funcționează. Rolul funcției este de a include în template anumite fișiere pe baza unor filtre. Și, findcă se bazează pe funcția php include, nu va funcționa corect decât într-un fișier localizat în directorul temei.

Dacă vrei să incluzi loop.php și pe noua pagină – trebuie găsită o soluție mai eficace.
Wordpress îți oferă o constantă, care indică exact calea absolută, pe server, către directorul temei. De exemplu pentru tema redline aceasta va fi ceva de genul ”/var/www/myblog.info/wp-content/themes/redline”. Arată bine, însă, pentru a ne putea include un fișier de acolo, cu include sau include_once, preferabilă ar fi o cale relativă către acest director. Asta se poate obține foarte ușor cu doar două linii de cod:

 

 

Prima dată includem wp-load.php, și după cum puteți observa fișierul  meu extern ce urmează să folosească tema de wordpress se află chiar în directorul rădăcină al wordpress. Definim variabila $template_path pentru a reține calea relativă de la directorul rădacină al WordPress la directorului temei curente. Apoi selectăm post-urile din categoria cu id-ul variabilei $categoryId (transmisă prin GET), pentru a fi afișate.
Mai jos utilizăm noua variabilă pentru a include fișiere specifice temei:

 

Dacă fișierul nu se află în directorul rădăcină al WordPress, mai avem de făcut un lucru, pentru a simplifica lucrurile, putem să definim o constantă care va reține valoarea returnată de script-ul de mai sus, din $template_path, (e.g. WP_TEMPLATE_PATH). Vom lăsa script-ul rezultat în fișierul rădăcină al WordPress și îl includem în fișierul nostru. Apoi rămân de adăugat ”../”, în fața WP_TEMPLATE_PATH,  în funcție de adâncimea direcrotului cu script-ul nostru.

Customizarea meniului în temele WordPress folosind un walker

WordPress este o platformă de blogging foarte răspândită. Dacă nu ați știut, este destul de ușor să portezi teme pentru el, iar în cazul în care aveți un blog pe wordpress, cu siguranță v-ați gândit la posibillitatea asta.
Pe sit-ul wordpress  veți găsi o serie de articole destul de explicite pentru cei care vor să facă o temă de wordpress: wordpress theme development sau designing themes for public release .

WordPress 3.0, a adus o serie de funcţii specifice construirii  şi afişării meniurilor dinamice. Astfel, avem în partea de administrare meniul  Appearance → Menus, de unde se pot construi meniuri, iar în fişierele temei putem apela funcţia wp_nav_menu cu parametrii specifici.

Deşi rezultatul funcţiei wp_nav_menu, poate fi customizat în fel şi chip, uneori pentru a obţine anumite efecte şi a menţine structura dinamică meniului este mai bine să apelăm la un walker.

$walker este penultimul parametru al funcției wp_nav menu, și ne permite să specificăm un obiect ce al unei clase care extinde clasa Walker.

Practic, dacă vrem să avem control absolut asupra afișării meniului, cel mai bine ar fi să folosim o funcție specifică, în loc de wp_nav_menu. Folosind un walker, putem extrage un vector (array) cu următoarea structură: array(“text”=>”link”) . Acesta îl putem mai apoi transmite ca parametru funcției noastre care va construi și eventual, afișa meniul.

Clasa de mai jos, este un exemplu de un astfel de walker. Acesta suprascrie o singură metodă a clasei Walker_Nav_Menu, și mai are în plus un membru public, ArrayItems , al cărui scop este de a reține un  vector de elemente de forma array( itemId => array( titlu => url ) ) :

Acum, pentru a putea folosi acest walker în tema de wordpress, clasa trebuie pusă fie într-un fișier php (d.e. theme_menu_walker.php), și inclus în fișierul unde urmează sa fie utilizat cu include sau mai bine pusă în functions.php, fișier care este inclus automat de wordpress odată cu fișierele temei.
După ce a fost inclus, noul walker, poate fi folosit astfel:

În acest fel, formatarea item-ilor rămâne alegerea voastră, fără a mai depinde de parametrii funcției wp_nav_menu.

Dacă vreți să descărcați cele doua fișiere din tutorial click aici.