get_template_part() ir kintamųjų aprėptis

„WordPress“ turi labai patogią funkciją – get_template_part(), kuri padeda įtraukti įvairius pasikartojančius stambesnius kodo gabaliukus – paieškos, kontaktų formos, soc. tinklų mygtukai, ir kt. Tiesiog parašote, kokį šabloną reikia įtraukti, ir jis yra įtraukiamas. Skirtingai nei paprastas include, ši funkcija leidžia child temai naudoti šablonus iš pagrindinės temos, ir automatiškai aptinka, kurioj WordPress temų katalogo vietoje tas šablonas yra padėtas.

Deja, yra vienas trūkumas – per šią funkciją iškviestiems šablonams, labai sunku perduoti kintamųjų reikšmes. Žemiau pateikiamas pavyzdys, kai yra nustatoma $post_id reikšmė ir su get_template_part yra įterpiamas loop-index.php šablonas. loop-index.php failas šios $post_id reikšmės nematys.

Kaip to išvengti? Pats paprasčiausias būdas – vietoj get_template_part naudoti locate_template() funkciją ir tuomet daryti include rankiniu būdu. Štai taip:

Bet tokiu būdu prarandama galimybė neradus loop-index.php failo automatiškai įkelti loop.php failą. Todėl aš parašiau šiek tiek pakeistą get_template_part funkcijos versiją – užuot įtraukusi rastą šabloną, ši funkcija tiesiog grąžina kelią iki jo ir leidžia mums patiems atlikti įtraukimą. Tokiu būdu loop-index.php failo viduje tampa prieinami kintamieji iš pagrindinio šablono.

Funkciją reikėtų dėti į functions.php failą, antrasis failas – naudojimo pavyzdys.