WordPress имеет группу функций, вызывающих подключаемые функции; в основном, они предназначены для переопределения для новой функциональности, но есть одна загвоздка - если другой плагин определит эту функцию первым, какой-то другой плагин с более низким приоритетом не сможет ... (иначе будет фатальная ошибка). Следовательно, принято включать «охранников», подобных этому
if (!function_exists('wp_new_user_notification'))
{
function wp_new_user_notification($userid, $blah='')
{
}
}
Это позволяет избежать фатальных ошибок, но приводит к загадочным сбоям плагинов ...
Обычно стараются избегать столкновения плагинов. Одна из проблем, однако, заключается в том, что вы не представляете, конфликтует ли плагин, и иногда трудно избежать этого для функционально-упакованных плагинов.
Вопрос в том (извините, что так долго пытался установить предпосылку), как вы обнаруживаете столкновения? Это всегда невидимый сбой, потому что функция существует, ошибки не выдается, но результат «Эй, этот плагин сломан!»
Я мог бы что-то повторить, если функция была определена, но как мне превратить ее в модульный тест? WordPress будет включать заголовочные файлы всех плагинов при загрузке страницы. Как мне определить, что подключаемая функция, загруженная Wordpress, является той, которую я хочу, программно?