请给我解释一下do_action的作用

时间:2014-11-03 作者:user3848698

我正在努力理解do\\u action,但不理解。我在研究布莱恩主题。他们在侧栏中有这个代码。php

<div id="secondary" class="widget-area col-md-3" role="complementary">
        <?php do_action( \'before_sidebar\' ); ?>
        <?php if ( ! dynamic_sidebar( \'sidebar-1\' ) ) : ?>

            <aside id="search" class="widget widget_search">
                <?php get_search_form(); ?>
            </aside>

            <aside id="archives" class="widget">
                <h1 class="widget-title"><?php _e( \'Archives\', \'blain\' ); ?></h1>
                <ul>
                    <?php wp_get_archives( array( \'type\' => \'monthly\' ) ); ?>
                </ul>
            </aside>

            <aside id="meta" class="widget">
                <h1 class="widget-title"><?php _e( \'Meta\', \'blain\' ); ?></h1>
                <ul>
                    <?php wp_register(); ?>
                    <li><?php wp_loginout(); ?></li>
                    <?php wp_meta(); ?>
                </ul>
            </aside>            

        <?php endif; // end sidebar widget area ?>

    </div><!-- #secondary --> 
但我不明白第二行是什么<?php do_action( \'before_sidebar\' ); ?> 正在进行。当我删除这一行时,它仍然输出相同的结果。

谁能举例说明一下吗。

1 个回复
最合适的回答,由SO网友:SLH 整理而成

如果将某些函数挂接到before_sidebar 操作,它们将在您的代码中执行。您的操作现在可能没有挂接任何函数,因此它不会返回任何结果。

示例:

<?php
add_action( \'before_sidebar\', function() {
  echo \'Try me!\';
});
add_action( \'before_sidebar\', function() {
  echo \'Yep. \';
}, 1);

// this should output "Yep. Try me!"
<?php do_action( \'before_sidebar\' ); ?>
第三个论点是优先权。在我的示例中,我将优先级设置为1 到第二个函数,它将在第一个位置执行。

有关更多信息,请参阅WP Codexdo_action, 和add_action.

结束

相关推荐

Adding custom Bulk Actions

我一直在寻找将自定义批量操作添加到类别页面的方法。他们中的大多数人说,不可能用干净的方式来做这件事,因为这件事没有挂钩。大多数解决方案包括在客户端使用JS通过DOM操作添加选项。虽然这是可行的,但它仍然是一个相当丑陋的解决方案。我读过的大多数文章都是2年前的,所以我一直在想,从那时起到现在,这个问题已经添加了一个新的挂钩或解决方案,以便对这个问题有一个更及时的解决方案。