La funzione wp_mail è territorio dei plugin?
Recentemente mi sono imbattuto in questo dubbio e mi chiedevo se chiamare wp_mail()
in un tema sia consentito o meno secondo gli standard di WordPress. Vorrei chiarire che non la sto sovrascrivendo come funzione pluggable nel tema, la sto semplicemente chiamando se esiste.
Sto chiedendo qui perché ho cercato questa informazione ma non ho trovato una risposta chiara che affermi qualcosa del genere.

WordPress offre molte funzioni che puoi utilizzare, inclusa la funzione wp_mail()
. Questa funzione non è solo territorio dei plugin, il core la utilizza frequentemente.
Se vuoi modificare il comportamento, utilizza i filtri e gli action hook presenti nel core per influenzare il comportamento della funzione. Ad esempio, per questa funzione è disponibile il filter hook wp_mail
, come puoi vedere qui nel sorgente. Questa è una possibilità per modificare il comportamento di wp_mail()
.
La funzione wp_mail()
è anche "pluggable" e può essere sostituita da una nuova funzione con lo stesso nome. Tutte le funzioni in wp-includes/pluggable.php
hanno un controllo per verificare se la funzione esiste. Questo offre agli sviluppatori la possibilità di sostituire la funzione apportando modifiche alla funzionalità.

Sebbene wp_mail()
non sia esattamente vietato in un tema, è molto probabile che sia fuori posto lì. Lo scopo di un tema è la presentazione. Non dovrebbe modificare i dati esistenti e dovrebbe sempre essere facile da sostituire.
Questo è il motivo per cui moduli di contatto, sondaggi, negozi, tracciamento e funzionalità simili sono territorio esclusivo dei plugin. Non c'è alcun contesto per wp_mail()
in un tema.

È interessante, poiché questo autore di WordPress che sembra autorevole scrive il contrario: https://code.tutsplus.com/tutorials/a-guide-to-overriding-parent-theme-functions-in-your-child-theme--cms-22623: "Le funzioni pluggable sono qualcosa che codifichi nel tema genitore, quindi non ti saranno utili se stai lavorando con un tema genitore esistente che non le ha."
