我在哪里可以找到“钩子”的来源以改变其输出?

时间:2013-03-16 01:50:23

标签: php wordpress templates hook buddypress

基本问题。有一个钩子我想改变,我不知道在哪里找到它。这是我正在使用的代码。具体的钩子是'bp_before_member_header_meta'

/**
 * 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' ); ?>

2 个答案:

答案 0 :(得分:1)

有一个名为$ wp_filter的全局数组,其中包含操作和过滤器的调用,因此如果查看$ wp_filter ['bp_before_member_header'],您将获得该操作的当前调用。

您还可以使用IDE或grep在代码中查找add_action的出现位置。这并不总是找到它们,因为名称有时是由代码构建的。今天我花了半个小时在Shopp寻找一个以这种方式建造的动作。

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

答案 1 :(得分:0)

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