Unde să plasez fișierele PHP personalizate într-un child theme?

16 apr. 2012, 01:51:46
Vizualizări: 18.3K
Voturi: 1

Personalizez o temă premium WP pentru a se potrivi mai bine site-ului meu, dar nu sunt sigur unde să plasez fișierele PHP pe care le modific. Trebuie plasate direct în folderul rădăcină al child theme-ului? Sau trebuie puse într-o structură similară cu cea din tema originală? Cum mă asigur că fișierul PHP din child theme este folosit în locul celui din tema părinte (de exemplu header.php)?

1
Comentarii

Lectură recomandată: http://codex.wordpress.org/Child_Themes

its_me its_me
13 iul. 2012 06:59:03
Toate răspunsurile la întrebare 3
0

Câteva lucruri de adăugat

  1. Dacă adaugi fișiere de tip template în child theme, acestea vor înlocui fișierele template din tema părinte.
  2. CSS-ul nu se importă automat, așa că trebuie să îl imporți manual în fișierul CSS al child theme-ului folosind @import, ar putea arăta astfel: @import url("../twentyeleven/style.css");
  3. Fișierul functions.php nu se înlocuiește, așa că toate funcțiile din tema părinte rămân definite și poți adăuga noi funcții PHP în fișierul functions.php al child theme-ului.
  4. Dacă copiezi și lipsești un fișier PHP din tema părinte în child theme pentru modificare și vezi ceva de genul require_once(TEMPLATEPATH.'/includes/a_php_file.php');, ține minte că constanta TEMPLATEPATH încă indică către directorul temei părinte. Dacă trebuie să modifici fișierul a_php_file.php, atunci copiază și acel fișier în child theme și folosește calea către fișierul de stiluri al temei pentru a ajunge în child theme. Deci va trebui să faci ceva de genul: include( get_stylesheet_directory() . '/includes/a_php_file.php');

Cum mă asigur că fișierul din child theme este folosit: Dacă faci totul corect, template-urile din child theme vor fi deja folosite. Dar dacă totuși vrei să verifici, poți adăuga un comentariu HTML în fișierul template și să verifici în sursă. Eu fac asta uneori când ceva nu funcționează, de asemenea adaug numele fișierului PHP în comentariul HTML ca să știu care fișier include/require de unde.

Codex:

http://codex.wordpress.org/Function_Reference/get_stylesheet_directory

7 iul. 2012 10:20:57
0

Pentru a răspunde la întrebările tale în ordine aleatorie:

Orice fișier de template pe care îl incluzi într-un child theme va fi folosit automat în locul versiunii cu același nume din theme-ul părinte. (Această regulă nu se aplică la style.css sau functions.php, dar header.php etc. sunt incluse.)

WordPress va folosi ierarhia de template-uri pentru a determina ce template-uri sunt necesare în funcție de query-ul curent - dacă theme-ul este bine construit, ar trebui să poți pune aceste fișiere în directorul root al child theme-ului fără a replica structura originală de directoare.

DAR, dacă theme-ul părinte a fost codat în moduri non-standard, și în special dacă încearcă să includă fișiere direct în loc să folosească funcțiile WordPress (cum ar fi get_header(), get_footer(), get_template_part() etc.), s-ar putea să fie nevoie să te murdărești puțin mai mult pe mâini. Theme-urile premium de calitate au adesea documentație despre cum să construiești child theme-uri pentru sistemul lor, mai ales dacă se bazează mult pe hook-uri non-WordPress... dar desigur, poate nu vei ști până nu începi să testezi cât de bună este documentația pentru theme-ul tău. Mult succes!

16 apr. 2012 05:05:45
0

Funcția WordPress "get_bloginfo" funcționează pentru mine

<?php echo get_bloginfo('template_url').'/db.php';?>

Poate fi folosită în interiorul codului JavaScript folosind

url:"<?php echo get_bloginfo('template_url').'/db.php';?>",

funcționează în child theme

23 apr. 2018 13:24:25