Php 我在哪里可以找到';挂钩';为了改变它的输出?

Php 我在哪里可以找到';挂钩';为了改变它的输出?,php,wordpress,templates,hook,buddypress,Php,Wordpress,Templates,Hook,Buddypress,基本问题。我想换一个钩子,我不知道在哪里可以找到它。这是我正在使用的代码。特定钩子是'bp\u before\u member\u header\u meta' " /** *BuddyPress-用户标题 * *@package BuddyPress *@子包bp默认值 */ ?> 有一个名为$wp\u filter的全局数组,其中包含对操作和筛选器的调用,因此如果查看$wp\u filter['bp\u before\u member\u header'],您将获得该操作的当前调用 您也可以

基本问题。我想换一个钩子,我不知道在哪里可以找到它。这是我正在使用的代码。特定钩子是'bp\u before\u member\u header\u meta'

"
/**
*BuddyPress-用户标题
*
*@package BuddyPress
*@子包bp默认值
*/
?>

有一个名为$wp\u filter的全局数组,其中包含对操作和筛选器的调用,因此如果查看$wp\u filter['bp\u before\u member\u header'],您将获得该操作的当前调用

您也可以使用IDE或grep在代码中查找add_操作。这并不总是找到它们,因为名称有时是由代码生成的。我今天花了半个小时在Shopp中查找这样生成的操作

编辑:
在plugin.php函数do_action和apply_filters中可以找到操作过滤器世界的另一面。这是实际运行操作和过滤器的代码,因此如果您想知道过滤器在哪里运行,可以查找对此的调用。它将过滤器名称作为参数,并按指定的顺序运行所有匹配的过滤器。它看起来就像你已经知道它们在哪里一样。

有一个名为$wp\u filter的全局数组,其中包含对操作和筛选器的调用,因此如果你查看$wp\u filter['bp\u before\u member\u header'],你将得到该操作的当前调用

您也可以使用IDE或grep在代码中查找add_操作。这并不总是找到它们,因为名称有时是由代码生成的。我今天花了半个小时在Shopp中查找这样生成的操作

编辑:
在plugin.php函数do_action和apply_filters中可以找到操作过滤器世界的另一面。这是实际运行操作和过滤器的代码,因此如果您想知道过滤器在哪里运行,可以查找对此的调用。它将过滤器名称作为参数,并按指定的顺序运行所有匹配的过滤器。它看起来就像你已经知道它们在哪里一样。

如果你只想修改特定钩子的输出,你应该能够使用
add_filter()
,并直接向该钩子添加一个过滤器。

如果你只想修改特定钩子的输出,你应该能够使用
add_filter()
,并直接向该钩子添加一个筛选器。

使用调试器,在行上放置一个断点,然后进入函数。您想对它做什么?查找钩子的源并不重要,因为通常任何输出/功能都会发生在使用钩子的任何函数上。@dan这很好,但是“使用调试器”在PHP中,说起来容易做起来难。这不是java,服务器通常不是本地的,可能是共享的,没有根访问权。@kennypu,我不知道这是如何工作的。我所知道的是,如果我移除钩子,我想要修改的CSS就会消失。所以我知道钩子在展示它们…问题是如何??我想向其中一些项添加div类,以便对它们进行样式设置。系统中的其他位置将调用add_action('bp_before_member_header_meta','some function'),为该do_操作的运行提供代码。有关如何查找它们的开始信息,请参阅我的答案。使用调试器,在行上放置断点,然后单步执行该函数。您想如何处理它?查找钩子的源并不重要,因为通常任何输出/功能都会发生在使用钩子的函数上。@dan这会很好,但在PHP中“使用调试器”通常说起来容易做起来难。这不是java,服务器通常不是本地的,可能是共享的,没有根访问权。@kennypu,我不知道这是如何工作的。我所知道的是,如果我移除钩子,我想要修改的CSS就会消失。所以我知道钩子在展示它们…问题是如何??我想向其中一些项添加div类,以便对它们进行样式设置。系统中的其他位置将调用add_action('bp_before_member_header_meta','some function'),为该do_操作的运行提供代码。请参阅我的答案,了解如何找到它们。您可能需要先删除现有操作,例如wpautop几乎总是需要替换,而不仅仅是添加。您可能需要先删除现有操作,例如wpautop几乎总是需要替换,而不仅仅是添加。
/**
 * BuddyPress - Users Header
 *
 * @package BuddyPress
 * @subpackage bp-default
 */

?>

<?php do_action( 'bp_before_member_header' ); ?>


<div id="item-header-content">
    <div class="auther-part">
        <div id="item-header-avatar">
            <a href="<?php bp_displayed_user_link(); ?>">
                <?php bp_displayed_user_avatar( 'type=full' ); ?>
            </a>
        </div><!-- #item-header-avatar -->

        <div class="auther-sidebar">
        <div id="item-meta">

            <div id="item-buttons">

            </div><!-- #item-buttons -->
            <?php do_action( 'bp_before_member_header_meta' ); ?>
            <?php do_action( 'bp_member_header_actions' ); ?>