【问题标题】:Buddypress plugin Group HierarchyBuddypress 插件组层次结构
【发布时间】:2012-08-27 05:10:23
【问题描述】:

Buddypress 具有组功能,我在其中结合了插件 BP Group Hierarchy,以便我可以根据用户角色创建组层次结构。

但是,插件使用了 Buddpress 在 group-extension-api> 链接中教授的方法。

使用函数 bp_register_group_extension 注册组步骤,并调用 add_action。我试图通过没有成功删除该操作。因为我不太了解数组是如何工作的,即数组(&$extension,\'_register\'),所以我去搜索并找到了这个post

有一句话说

上述对象引用方法回调的新格式始终是:类名,后跟方法名,然后是之前添加的数量(类名+方法名)。对于类,这允许您添加尽可能多的对象引用类并添加不会相互覆盖的方法。

但我似乎无法删除该操作。

我试图通过在 function.php 中添加以下代码行来删除该操作

函数 remove_bp_hierarchy(){

if (has_action('bp_actions')) {

echo $extension = 新的 BP_Groups_Hierarchy_Extension;

remove_action('bp_actions', array( &$extension, '_register' ), 999);

} 否则 {

}

add_action('bp_init','remove_bp_hierarchy', 999);

是我的 remove_action 有问题还是我使用了错误的方法?谢谢和问候。

## 更新

找到一个page,在其中我们可以看到页面中的钩子列表和钩子函数。我看到有一个名为 _register 的函数,这是我正在寻找的函数。但是,班级地址总是在变化。我正在考虑使用找到的函数对其进行 preg_match 并在找到时将其删除。这是超重的。那么有没有其他方法可以去除呢?谢谢和问候。

【问题讨论】:

  • 现在使用全局 $wp_filter 暂时解决它; $the_key = key($wp_filter['bp_actions'][8]);未设置($wp_filter['bp_actions'][8]);这就像一个铁杆 wordpress remove_action

标签: hierarchy buddypress


【解决方案1】:

CodingBabyDotCom -

长话短说:您必须遍历 $wp_filter 数组才能删除操作。

您需要对用于创建操作的 SAME 实例的引用才能使用 remove_action 函数将其删除。因此,您发布的功能不起作用,因为它使用的是新实例。

很遗憾,bp_register_group_extension() 只创建了一个临时实例,因此以后的函数无法引用它。

您评论中的代码将删除第 8 级的所有操作,这意味着所有组扩展。要仅删除您想要的,请遍历每个过滤器并检查其类型:

is_a( $wp_filter['bp_actions'][8][$key], 'BP_Groups_Hierarchy_Extension' )

【讨论】:

    猜你喜欢
    • 2018-03-17
    • 2011-09-02
    • 2014-03-01
    • 1970-01-01
    • 2015-10-07
    • 2012-01-09
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多