在WordPress加载开始时添加什么挂钩

时间:2015-07-17 作者:tammy

我想添加一个钩子,它是每当有人点击我网站上的页面、帖子或其他WP内容时,在WordPress中的任何其他内容执行之前运行的第一件事。

你能帮我弄一下那个钩子是什么样子吗?

是吗init ?

它看起来像这样吗:add_action(\'init\', \'callMyFunction\');

或者这个:do_action(\'init\', \'callMyFunction\');

非常感谢。

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

最早可以从外部代码访问的钩子是muplugins_loaded. 要使用它,请创建一个目录mu-plugins 在您的wp-content 目录并将一个PHP文件放入该目录。

示例代码,将产生副作用(!):

add_action( \'muplugins_loaded\', function() {
    print current_filter();
});
当然,这并不是“在WordPress中的任何其他内容执行之前”。WordPress必须运行一些代码来加载这样的mu插件。你可以在里面找到钩子/wp-settings.php. 就在电话上方,你可以看到之前发生了什么。

这里真正的问题是why 您认为需要尽早运行代码。这几乎是不需要的。

如果要要求登录某些站点,请等待plugins_loaded (is_user_logged_in() 之前不工作)并执行以下操作:

add_action( \'plugins_loaded\', function() {

    if ( is_user_logged_in() )
        return;

    $protected_sites = [1, 4, 7];

    if ( in_array( get_current_blog_id(), $protected_sites ) )
        auth_redirect();
});

结束

相关推荐

如何将POST_ROW_ACTIONS()与自定义操作函数链接

我在下面定义了一个自定义帖子类型,我想添加一个自定义行操作,以允许我通过管理面板“更新”帖子class LeagueCpt { function __construct() { add_action( \'init\', array(&$this,\'registerLeagueCPT\')); add_filter(\'post_row_actions\', array(&$this,\'post_r