Относится ли wp_mail к области плагинов?

21 дек. 2016 г., 11:01:56
Просмотры: 288
Голосов: 0

Недавно я наткнулся на это и задумался, разрешено ли вызывать wp_mail() в теме согласно стандартам WordPress. Уточню, что я не переопределяю её как pluggable-функцию в теме, а просто вызываю, если она существует.

Спрашиваю здесь, потому что искал информацию, но не нашёл чёткого ответа на этот вопрос.

0
Все ответы на вопрос 3
0

WordPress предоставляет множество функций, которые вы можете использовать, включая функцию wp_mail(). Эта функция предназначена не только для плагинов, ядро WordPress также часто её использует.

Если вам нужно изменить её поведение, используйте хуки фильтров и действий, которые есть в ядре, чтобы повлиять на работу функции. Например, для этой функции предусмотрен фильтр wp_mail, см. здесь в исходном коде. Это возможность изменить поведение wp_mail().

Функция wp_mail() также является заменяемой (pluggable), и её можно переопределить новой функцией с тем же именем. Все функции в файле wp-includes/pluggable.php содержат проверку на существование функции. Это даёт разработчикам возможность заменить функцию с изменённой функциональностью.

21 дек. 2016 г. 11:07:42
2

Хотя wp_mail() не является строго запрещённым в теме, его использование там, скорее всего, неуместно. Основная задача темы — это представление. Она не должна изменять существующие данные, и её всегда должно быть легко заменить.

Именно поэтому контактные формы, опросы, магазины, трекинг и подобный функционал относятся исключительно к плагинам. Нет никакого контекста для использования wp_mail() в теме.

21 дек. 2016 г. 11:13:55
Комментарии

Интересно, поскольку этот автор WordPress, который кажется авторитетным, пишет обратное: https://code.tutsplus.com/tutorials/a-guide-to-overriding-parent-theme-functions-in-your-child-theme--cms-22623: "Подключаемые функции — это то, что вы кодируете в родительской теме, поэтому они не будут вам полезны, если вы работаете с существующей родительской темой, в которой их нет."

Alex C Alex C
21 дек. 2016 г. 11:20:52

@AlexC Я говорю только о wp_mail(), а не о подключаемых функциях в целом. Хотя это ужасная концепция.

fuxia fuxia
21 дек. 2016 г. 11:22:47
0

Нет абсолютно ничего плохого в вызове функции wp_mail() в теме. Это основная функция WordPress, которая предназначена для использования.

17 мая 2019 г. 02:51:47