VS Code中WordPress回调函数0引用的识别方法问询
在VS Code中让Intelephense识别WordPress钩子的字符串回调引用
当在Visual Studio Code里写WordPress代码时,要是把自定义函数以字符串形式传给add_action或add_filter当回调,比如:
function myCallback() { //do some stuff } add_action('init', 'myCallback');
因为回调是字符串,Intelephense(VS Code里常用的PHP智能提示插件)没法识别这是对函数的引用,会在函数上方显示“0 references”,这对开发来说很容易误导人。
下面是几种可行的解决办法:
用Intelephense支持的
@see注释标记引用关系
在回调函数的注释里加上@see,指向钩子调用的代码;或者在钩子调用的地方加@see指向函数。举个例子:/** * 自定义回调逻辑 * @see add_action('init', 'myCallback') */ function myCallback() { //do some stuff } add_action('init', 'myCallback');也可以反过来在钩子调用处加注释:
function myCallback() { //do some stuff } /** * 给init钩子注册回调 * @see myCallback() */ add_action('init', 'myCallback');这样Intelephense就能识别到两者的引用关系,函数上方的引用数就会正确显示了。
用PHP常量替代字符串回调(优化你的方案一)
你想的myCallback.name不是PHP的合法语法,不过可以用定义常量的方式来替代字符串,既能避免拼写错误,也能让插件识别引用:define('MY_CALLBACK_FUNC', 'myCallback'); function myCallback() { //do some stuff } add_action('init', MY_CALLBACK_FUNC);
关于你提到的两个方案:
- 方案一的
myCallback.name不符合PHP语法,PHP里没有这种获取函数名的方式,没法直接实现; - 方案二的自定义注释
/* @references:myCallback */Intelephense不支持,得用插件官方认可的注释标签比如@see才行。
内容的提问来源于stack exchange,提问作者epeleg
相关产品推荐
相关产品推荐

