1

基本问题。我想改变一个钩子,但我不知道在哪里可以找到它。这是我正在使用的代码。具体的钩子是'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' ); ?>
4

2 回答 2

1

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

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

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

于 2013-03-16T02:02:31.760 回答
0

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

于 2013-03-16T02:06:40.987 回答