Este wp_mail în teritoriul plugin-urilor?
Recent am dat peste această întrebare și m-am întrebat dacă apelarea funcției wp_mail()
într-o temă este permisă conform standardelor WordPress. Trebuie să clarific că nu o suprascriu ca funcție pluggable în tema, ci doar o apelez dacă există.
Întreb aici pentru că am căutat acest lucru dar nu am găsit un răspuns clar care să spună ceva în acest sens.

WordPress oferă o mulțime de funcții pe care le poți utiliza, inclusiv funcția wp_mail()
. Această funcție nu este doar în sfera plugin-urilor, ci este folosită frecvent și în nucleul platformei.
Dacă dorești să modifici comportamentul acesteia, folosește filtrul și acțiunile (hooks) care sunt incluse în nucleu pentru a influența comportamentul funcției. De exemplu, pentru această funcție există hook-ul de filtru wp_mail
, vezi aici în sursă. Aceasta este o posibilitate de a schimba comportamentul funcției wp_mail()
.
Funcția wp_mail()
este, de asemenea, "pluggable" și poate fi înlocuită cu o nouă funcție cu același nume. Toate funcțiile din wp-includes/pluggable.php
au o verificare dacă funcția există deja. Acest lucru oferă dezvoltatorilor șansa de a înlocui funcția cu modificări la funcționalitate.

Deși wp_mail()
nu este exact interzis într-o temă, este foarte probabil să fie plasat greșit acolo. Scopul unei teme este prezentarea. Nu ar trebui să modifice date existente și ar trebui să fie întotdeauna ușor de înlocuit.
Acesta este motivul pentru care formularele de contact, sondajele, magazinele, urmărirea și funcționalități similare aparțin exclusiv plugin-urilor. Nu există un context pentru wp_mail()
într-o temă.

Este interesant, deoarece acest autor WordPress care pare credibil scrie contrariul: https://code.tutsplus.com/tutorials/a-guide-to-overriding-parent-theme-functions-in-your-child-theme--cms-22623: "Funcțiile pluggable sunt ceva ce implementezi în tema părinte, așa că nu îți vor fi de folos dacă lucrezi cu o temă părinte existentă care nu le are."
