@package și @subpackage: cum să le folosești cu temele derivate
Problema mea este legată de @package
și @subpackage
.
Am vizitat link-ul sugerat (Ce reprezintă comentariile package și subpackage?). Acolo nu am găsit nimic aplicabil problemei mele, dar am găsit acest răspuns: "Acestea sunt tag-uri PHPDoc - folosite pentru a genera documentație automată și semnificativă pentru cod". Iată ce am momentan:
/**
* Conține o listă cu toate action hook-urile personalizate și funcțiile corespunzătoare definite pentru abc.
* Acest fișier este inclus în functions.php:
*
* @package theme-name
* @subpackage Functions
*/
Aceasta nu este o temă derivată din twenty ten. Există un folder în directorul theme-name: functions
. Tema mea derivată se află într-un alt folder. Am salvat fișierul functions.php
în folderul temei mele derivate. Nimic nu se schimbă (conținutul) indiferent dacă modific subpackage cu numele folderului meu sau las cuvântul Functions
acolo.
Ce ar trebui să pun aici?
/**
* Conține o listă cu toate action hook-urile personalizate și funcțiile corespunzătoare definite pentru abc.
* Acest fișier este inclus în functions.php:
*
* @package theme-name
* @subpackage ???
*/

Regulă de bază: codul tău este împachetat (adică ambalat) împreună cu codul indicat de @package
? Dacă nu, atunci folosești o valoare incorectă pentru @package
.
În cazul majorității temelor, acest lucru este simplu:
- Temele incluse în nucleul WordPress folosesc
@package: WordPress
și@subpackage Nume-Tema
, deoarece sunt ambalate și distribuite împreună cu WordPress - Toate celelalte teme folosesc
@package: Nume-Tema
, deoarece sunt ambalate și distribuite separat de WordPress.
Toate temele reprezintă un strat de abstractizare al WordPress-ului și se bazează pe WordPress pentru a fi afișate. Dar această dependență nu le face un @subpackage
al WordPress-ului.
Aș aplica această regulă și pentru temele copil. Ele sunt un pachet independent, ambalat și distribuit separat de tema părinte/șablon pe care se bazează.

Exact cum spune documentația originală pe care ai găsit-o, acestea sunt tag-uri PHPDocumenter. Ele nu afectează codul tău, așa că modificarea lor nu va schimba nimic.
Cu toate acestea, ele sunt utile pentru instrumentele automate care analizează codul și creează documentație ușor de înțeles pentru oameni. Acest PHPXref este un exemplu de versiune analizată a WordPress.
În WordPress, @package
este de obicei WordPress. @subpackage
este modulul pe care îl analizezi. De exemplu, partea de sus a clasei WP_Http
conține:
/**
* API simplu și uniform pentru cereri HTTP.
*
* Standardizează cererile HTTP pentru WordPress. Gestionează cookie-uri, codificarea și decodificarea gzip,
* decodificarea fragmentelor, dacă HTTP 1.1 și diverse alte implementări complexe ale protocolului HTTP.
*
* @link http://trac.wordpress.org/ticket/4779 Propunere pentru API HTTP
*
* @package WordPress
* @subpackage HTTP
* @since 2.7.0
*/
În cazul tău, @package
ar fi numele temei tale. @subpackage
este opțional și relevant doar dacă ai alte module în interiorul temei - fișierul tău functions.php
nu este chiar un subpachet al temei, așa că aș omite acest tag în acest caz.
Temele copil nu trebuie să moștenească structura @package
/@subpackage
de la părinți. Folosește ceea ce are sens pentru proiectul tău, deoarece, în realitate, aceste comentarii și note sunt specifice pentru a-i ajuta pe alții să înțeleagă structura proiectului tău.

Bună, Vă mulțumesc tuturor pentru răspunsuri. Tocmai am lăsat numele pachetului ca fiind numele temei mele (sper că am înțeles corect).
Fișierul .php pe care îl am se află într-un folder de funcții în tema mele copil, așa cum este și în tema părinte. Nu am reușit să-l fac să funcționeze, așa că am crezut că problema este legată de modul în care pachetul și subpachetul se referă la alte elemente.
Din ceea ce spuneți, nu este cazul și tot nu funcționează. Cum pot face ca fișierul .php să funcționeze, vă rog? (Sau ar trebui să fie un subiect nou?)

Folosești include()
sau require()
în fișierul tău principal functions.php
pentru a include noul fișier PHP? Dacă nu, atunci acesta nu va fi niciodată încărcat. Aș sugera să deschizi un subiect nou, dar includerea fișierelor PHP nu este o problemă specifică WP; așa că, dacă deschizi un subiect nou, te-aș încura să o faci pe Stack Overflow.

Tag-ul @package
specifică pachetele pentru a grupa clase sau funcții și definește, de asemenea, un temă pentru WordPress. Un @subpackage
este copilul temei, precum o funcționalitate pentru o cerință specifică sau un temă copil, un subpachet.
Sugestie mică pentru documentația tag-urilor phpdoc: http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html

Aceștia sunt tag-uri de documentare. Le folosești pentru a grupa bucăți de cod înrudite în scopul documentării codului. Wikipedia are un grafic util cu diferitele tag-uri disponibile. Documentația oficială se găsește la http://www.phpdoc.org/.
Nu se întâmplă nimic (schimbarea conținutului) nici atunci când schimb numele subpachetului cu numele folderului meu, nici dacă las cuvântul "Functions" acolo.
Corect. Nu se întâmplă nimic. Acestea sunt doar pentru documentarea codului. Nu vei observa nicio diferență până nu rulezi codul prin scriptul PHPDoc, care va genera documentația dar nu va schimba funcționarea codului tău.
Folosește @package
pentru a identifica tema ta. Folosește @subpackage
, dacă dorești, pentru a grupa funcții în cadrul temei - de exemplu un fișier plin de widget-uri specifice temei sau ceva similar.
