În PHP functions.php, funcția necesară pentru tema dvs. este plasată și care nu se aplică unui anumit șablon.
Codul WordPress definește următoarele definiții ale fișierelor funcționale:
Fișierul functions.php se comportă ca un plugin, adăugând funcții și funcționalități site-ului WordPress. Acesta poate fi folosit pentru apelarea atât a funcțiilor PHP, cât și a funcțiilor WordPress încorporate, pentru a defini funcțiile proprii. Puteți obține același rezultat adăugând codul în pluginul WordPress sau în fișierul functions.php al temei WordPress.
Există o asemănare între funcțiile.php și fișierul plugin. Este folosit pentru codul de același tip pe care îl puteți adăuga la plugin.
Dacă aveți o mulțime de cod funcțional pe care trebuie să-l utilizați pe site, atunci trebuie să puneți acest cod în plugin. Dar dacă codul depinde de temă, functions.php este locul în care ar trebui să fie plasat. Regula generală:
Utilizați funcțiile.php. când doriți să adăugați funcții simple legate de afișarea conținutului (adică nu va funcționa dacă subiectul nu este activ).
Creați un plugin. dacă funcționalitatea este mai complexă sau funcția publică PHP nu depinde de temă. De exemplu, puteți înregistra tipurile de înregistrări - nu doriți să pierdeți tipuri de înregistrări personalizate la schimbarea subiectului.
Utilizarea în comun a fișierului de funcții
Când să utilizați funcțiile.php:- Adăugarea de suport tematic, de exemplu, pentru imagini postate, formate de înregistrări RSS și linkuri;
- Specificați WordPress. unde este localizat fișierul de traducere a subiectului;
- Înregistrați locațiile pentru meniul de navigare, permițându-vă să adăugați meniuri prin panoul de administrare;
- Adăugați, eliminați sau redefiniți funcționalitatea temei părinte utilizând o temă copil.
- În acest articol vă voi arăta cum se face acest lucru.
Adăugarea unui cod în fișierul de funcții și activarea acestuia
Adăugăm un cod la funcțiile.php și îi spunem lui WordPress să îl activeze în același mod ca și cu plugin-ul:- Noi scriem funcții pe care le numim apoi în șabloane tematice - aceasta este utilă atunci când există un bloc de cod care trebuie folosit în mai multe locuri din temă, dar nu va funcționa ca parte a șablonului;
- Legăm funcțiile cu cârligul de acțiune sau filtrul. Astfel, funcția este pornită când WordPress întâlnește acest cârlig. WordPress în sine oferă la dispoziția dezvoltatorilor sute de cârlige. Puteți găsi unele dintre ele în tema și plug-in-urile. Dacă adăugați un cod la funcțiile functions.php pentru a activa o funcție specifică într-un subiect nou, atunci trebuie să creați o temă copil. În caz contrar, fișierul de funcții va fi suprascris imediat după ce tema este actualizată;
- Creați un shortcode, pe care apoi îl adăugăm la conținut. Nu aș recomanda adăugarea unui cod scurt utilizând fișierul funcției PHP. Este mai bine să faceți acest lucru cu un plug-in, astfel încât conținutul afișat de codul scurt să nu se piardă dacă schimbați subiectul;
- Creați un widget. Aceasta nu este o decizie bună; dacă doriți să creați un widget, adăugați un plug-in pentru el;
- Să ne uităm la modul de lucru cu fișierul functions.php și cum să adăugăm o parte din funcționalitatea comună cu acesta.
Crearea unui fișier de funcții
Dacă tema dvs. nu conține funcții.php. trebuie să îl creați în directorul rădăcină. Apoi trebuie să adăugați eticheta de deschidere PHP în fișier. dar nu trebuie să închideți:
Adăugarea unui cod în fișierul functions.php
Să ne uităm la câteva funcții utilizate în mod obișnuit.
Adăugarea de suport temă
Astfel, pentru a adăuga, de exemplu, suport pentru o temă pentru formatele de înregistrare, trebuie să utilizați funcția add_theme_support ():
Unele dintre funcțiile WordPress funcționează php. pentru care se adaugă suportul tematic, au parametri suplimentari. De exemplu, când adăugați asistență, puteți specifica formatele de înregistrări pe care doriți să le utilizați:
Și pentru imagini speciale, puteți specifica în ce tipuri de înregistrări vor fi suportate:
Dar niciuna din aceste lucruri nu va funcționa dacă nu puneți codul în interiorul funcției și nu legați acțiunea after_setup_theme la cârligul corespunzător. Puteți adăuga toate funcțiile add_theme_support () într-o singură funcție mai mare, pe care apoi le obligați la after_setup_theme. Prin urmare, dacă doriți să adăugați suport pentru tema miniaturilor de înregistrări, formate de înregistrare, HTML5 și legături automate la canale, adăugați următorul cod în fișierul de funcții:
Adăugați un fișier de traducere
Traducere înseamnă că orice text pe care îl adăugați la panoul de administrare prin intermediul subiectului va fi tradus utilizând un fișier de traducere.
Utilizați funcția privată PHP load_theme_textdomain () în fișierul funcțional pentru a specifica WordPress. unde se află fișierul de traducere:
Această funcție utilizează funcția get_template_directory (). Pentru a găsi folderul temă și apoi căutați în folderul de limbi pentru fișierul care începe cu tema wpmu. Prin urmare, calea va fi wp-content / themes / mytheme / languages /. iar numele fișierului de limbă începe cu tema wpmu. urmată de codul de limbă.
Înregistrarea meniului de navigare
În fișierul functions.php, meniul de navigare este, de asemenea, înregistrat. În multe subiecte există o casetă de selectare "Meniul principal", care poate fi setată în secțiunea "Meniu". Acest lucru face posibilă utilizarea meniului într-un anumit loc al temei. Pentru a implementa o astfel de funcționalitate, trebuie să utilizați meniul funcțiilor registrului funcțiilor ():
Acest cod înregistrează locația meniului, care va fi afișat în panoul de administrare ca "Meniul Principal", iar identificatorul său va fi primar. Apoi utilizați acest identificator pentru a afișa meniul în fișierul tematic header.php.
Fiți atenți. în codul de mai sus, am făcut deja numele meniului pregătit pentru traducere. Prin urmare, orice utilizator care vorbește într-o altă limbă va vedea textul "Main Menu" tradus pentru el folosind fișierul de traducere.
De asemenea, puteți utiliza această funcție PHP pentru a înregistra mai multe elemente de meniu de navigare. În codul de mai jos, meniul principal este înregistrat, precum și un meniu suplimentar în bara laterală:
Trebuie să adăugați codul de meniu la fișierul sidebar.php al temei utilizând funcția wp_nav_menu ().
Să însumăm rezultatele
Toate funcțiile pe care le-am descris mai sus sunt activate cu un singur cârlig de acțiune: after_setup_theme. Aceasta înseamnă că, în loc să scrieți mai multe funcții separate, le puteți adăuga tuturor la o funcție și apoi activați-o cu un cârlig.
Puteți crea o funcție minunată:
Includerea fișierelor
Uneori functions.php devine greu de gestionat și conține blocuri de cod pe care aș vrea să le păstrez separat. În acest caz, este recomandat să creați fișiere separate și apoi să le apelați din funcțiile.php.
Creați un dosar numit "include" în tema dvs. și apoi adăugați fișiere separate PHP la acesta pentru fiecare bloc de cod pe care doriți să îl separați. De exemplu, dacă doriți să mutați o setare a temei într-un alt fișier, mi-aș muta tot codul de mai sus într-un fișier numit theme_setup.php. și apoi a apelat-o în funcțiile.php:
Acest cod numește codul fișierului inclus și apoi îl lansează în acel loc functions.php. în care am adăugat funcția include (). În mod normal, am pus toate fișierele de la începutul fișierului funcției, astfel încât acestea să poată fi găsite cu ușurință.
Lucrul cu subiectele pentru părinți și copii
functions.php poate fi un instrument eficient pentru lucrul cu subiectele părinte și copil. În tema copilului, puteți utiliza propriul fișier funcțional pentru a suprascrie sau șterge funcții din tema părinte sau pentru a adăuga altele noi.
Există trei moduri de a suprascrie sau de a adăuga funcții la o temă copil:- Creați o nouă versiune a pluginului;
- Dezactivați funcția temei părinte;
- Adăugarea funcției proprii utilizând prioritatea pentru a suprascrie funcția temei părinte.
Să analizăm fiecare dintre căile noastre.
Caracteristici conectabile
Dacă lucrați cu o temă părinte bine concepută, atunci există posibilitatea ca în funcțiile php (unde sunt localizate funcțiile) acestea să fie conectabile.
Funcțiile tematice copil sunt executate mai devreme decât cele care conțin tema părinte. Dacă creați o funcție cu același nume în tema copilului, WordPress nu o va lansa din tema părinte. Prin urmare, pentru a înlocui tema părinte, creați pur și simplu o funcție proprie în funcțiile.php a temei copil cu același nume.
Dezactivarea funcțiilor
Pentru a dezactiva o funcție, desfaceți-o din acțiunea sau filtrul la care este atașată. De exemplu, dacă tema părinte are funcția parent_function (). care este activat cu cârligul init. îl puteți dezactiva în subiectul copilului după cum urmează:
Acest lucru va însemna că această funcție a funcțiilor WordPress nu va mai fi executată. Apoi, dacă doriți să aveți diferite funcții în tema copilului, puteți scrie o nouă funcție. Apoi atașați-l la același cârlig, dar nu cereți același nume pentru el.
Notă. Dacă funcția mamă conține parametrul prioritar din add_action () care efectuează funcția care trebuie dezactivată, trebuie să specificați aceeași prioritate atunci când este dezactivată.
Utilizarea priorității unei funcții
Ultima opțiune este să creați o funcție nouă cu o prioritate mai mare decât funcția pe care doriți să o înlocuiți. Aceasta înseamnă că va fi efectuată după funcția inițială. Trebuie să faceți acest lucru, deoarece WordPress lansează mai întâi funcțiile tematice copil. Numai prin adăugarea unui număr de prioritate, puteți schimba acest lucru.
Să presupunem că tema părinte conține funcția parent_function (). care este activat cu cârligul init cu o prioritate de 20:
Puteți scrie o funcție care suprascrie funcția părinte și apoi o legați de cârligul init cu o prioritate mai mare, de exemplu, 30:
În cazul în care caracteristica de bază nu este o prioritate, atunci se va utiliza valoarea implicită 10. Astfel, puteți utiliza orice număr mai mare de 10 la tema filiala a fost efectuată după funcția de părinte.
Fișierul de funcții este prietenul tău
Fișierul de funcții PHP al temei funcționează foarte mult ca un plugin, dar este specific unei anumite teme. Prin urmare, trebuie doar să o utilizați pentru a adăuga funcții care pot fi dezactivate atunci când este activat un alt subiect. În acest articol, ați învățat ce este pentru fișierul funcției tematice. Lucrați cu funcțiile cu funcții.php cu atenție, evitați utilizarea acestuia atunci când tot ceea ce aveți nevoie se poate face cu pluginul.
Traducerea articolului "Ultimul ghid al dosarului WordPress functions.php" de echipa prietenoasă a proiectului Saitostroenie de la A la Z.