¿Es wp_mail territorio de los plugins?
Recientemente me encontré con esto y me preguntaba si llamar a wp_mail()
en un tema está permitido o no según los estándares de WordPress. Debo aclarar que no estoy sobrescribiéndola como una función pluggable en el tema, solo la llamo si existe.
Pregunto aquí porque he estado buscando esto pero no encontré una respuesta clara que afirme algo al respecto.

WordPress proporciona muchas funciones que puedes utilizar, incluyendo la función wp_mail()
. Esta función no es exclusiva de los plugins, el núcleo la utiliza con frecuencia.
Si deseas modificar su comportamiento, utiliza los ganchos de filtros y acciones que están dentro del núcleo para influir en el funcionamiento de la función. Como ejemplo para esta función, está el gancho de filtro wp_mail
, como puedes ver aquí en el código fuente. Esta es una posibilidad para cambiar el comportamiento de wp_mail()
.
La función wp_mail()
también es "pluggable" y puede ser reemplazada por una nueva función con el mismo nombre. Todas las funciones en wp-includes/pluggable.php
tienen una verificación para comprobar si la función existe. Esto les da a los desarrolladores la oportunidad de reemplazar la función con cambios en su funcionalidad.

Aunque wp_mail()
no está exactamente prohibido en un tema, es muy probable que esté mal ubicado allí. El propósito de un tema es la presentación. No debería modificar datos existentes y siempre debería ser fácil de reemplazar.
Esa es la razón por la que los formularios de contacto, encuestas, tiendas, seguimiento y funcionalidades similares son territorio exclusivo de los plugins. No hay contexto para wp_mail()
en un tema.

Es interesante, ya que este autor de WordPress que parece reputado escribe lo contrario: https://code.tutsplus.com/tutorials/a-guide-to-overriding-parent-theme-functions-in-your-child-theme--cms-22623: "Las funciones pluggables son algo que codificas en tu tema padre, por lo que no te serán útiles si estás trabajando con un tema padre existente que no las tiene."
