WordPress - 添加到挂钩的操作在回调列表中消失

WordPress - Added action to a hook disappears in list of callbacks

在通过 xDebug 调试了许多小时后遇到了一个非常令人沮丧的错误。当从插件 (BuddyPress) 中触发 do_action 时,通过 add_action 添加到挂钩的函数丢失或无法访问。

我在主题文件夹中提到的功能:UpdateSalesForceAvatar

操作:'bp_members_avatar_uploaded'

为上述功能添加add_action的主题代码:

       public static function RegisterActions(): void {
            add_action( 'xprofile_data_after_save', [self::class, 'UpdateSalesforce'] );
            add_action( 'xprofile_data_after_delete', [self::class, 'UpdateSalesforce'] );
            add_action( 'bp_members_avatar_uploaded', [self::class, 'UpdateSalesForceAvatar'], 10, 3);
            add_filter( 'bp_core_avatar_folder_dir', [self::class, 'HandleAvatarFolderDir']);

        }

UpdateSalesForceAvatar 的函数原型:

public static function UpdateSalesForceAvatar($item_id, $type, $avatar_data) {

以下是屏幕截图和调试信息,希望有人能帮助我理解为什么从插件访问全局 $wp_filters 时它会丢失。

add_action

之后的第一个屏幕截图

未来在 BuddyPress 中执行代码后的第二张截图

感谢所有反馈!

有时您必须尝试另一个位置,这可能是因为插件与该操作交互。

解决方案更像是一种解决方法,将操作的注册移至 functions.php