Buddypress には、ユーザー ロールに基づいてグループの階層を作成できるように、プラグイン BP Group Hierarchy と組み合わせたグループ機能があります。
ただし、プラグインは group-extension-api> リンクで Buddpress によって教えられた方法を使用しました。
グループ ステップは関数 bp_register_group_extension を使用して登録され、add_action が呼び出されます。アクションを削除しようとしましたが、成功しませんでした。配列がどのように機能するか、つまり array( &$extension, \'_register\' ) がよくわからないので、検索してこの投稿を見つけました。
という一行があります
上記のオブジェクト参照メソッド コールバックの新しい形式は、常に次のとおりです。クラス名の直後にメソッド名が続き、その後に以前に追加された量 (クラス名 + メソッド名) が続きます。クラスの場合、これにより、オブジェクト参照クラスをできるだけ多く追加し、互いにオーバーライドしないメソッドを追加できます。
ただし、アクションを削除できないようです。
function.php に次のコード行を入れて、アクションを削除しようとしました
関数 remove_bp_hierarchy(){
if (has_action('bp_actions')) {
echo $extension = new BP_Groups_Hierarchy_Extension;
remove_action('bp_actions', array( &$extension, '_register' ), 999);
} そうしないと {
}
add_action('bp_init','remove_bp_hierarchy', 999);
私の remove_action に何か問題がありますか、それとも間違った方法を使用していますか? ありがとうございます。
## アップデート
フックのリストとページ内のフックされた機能を確認できるページを見つけました。探している関数である _register という名前の関数があることがわかります。ただし、クラスのアドレスは常に変更されます。見つかった関数を使用して preg_match を実行し、見つかったときに削除することを考えていました。これは超重い。それで、それを取り除く他の方法はありますか?ありがとうございます。