SO网友:J.D.
您发现WordPress已加载,并且在测试运行之前调用了所有操作。加载WordPress时可以钩住一个操作,但必须从PHPUnit引导文件而不是从testcase类中完成。我不知道你的引导文件是什么样子的,所以我假设它类似于the one in this tutorial. 您需要做的主要事情是加载包含WordPress的PHPUnit助手函数的文件(tests/phpunit/includes/functions.php
). 您需要包括该文件,因为它包含tests_add_filter()
作用这就是你可以用来连接的函数init
, 像这样:
tests_add_filter( \'init\', \'my_function_to_call\' );
该函数的工作原理与
add_filter()
或
add_action()
功能。您不能使用
add_action()
但是,由于WordPress尚未加载,因此这些函数不可用。正如您所发现的,您不能等到WordPress加载后再连接您的函数,因为那样就太晚了。这就是为什么
tests_add_filter()
函数存在:因此您可以在加载WordPress进行测试之前将其挂接到WordPress。