这可能是调整过滤器回调的优先级的问题,因为插件文件是在functions.php
主题文件。这可以解释为什么它在你的functions.php
文件,如果优先级相同。
将代码段添加到插件时,它可能会在使用相同筛选器的其他插件之前执行。
默认优先级为10
, 因此,您应该在插件代码中尝试更高级的内容,例如:
add_filter( \'user_contactmethods\', \'newfields\', 99 );
甚至
add_filter( \'user_contactmethods\', \'newfields\', PHP_INT_MAX );
如果您想绝对确保过滤器回调是最后一个要执行的回调-假设其他插件没有使用
PHP_INT_MAX
也
但更好的是,只需检查优先级user_contactmethods
筛选其他插件正在使用的回调。