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
在通过 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