我想添加一个钩子,它是每当有人点击我网站上的页面、帖子或其他WP内容时,在WordPress中的任何其他内容执行之前运行的第一件事。
你能帮我弄一下那个钩子是什么样子吗?
是吗init
?
它看起来像这样吗:add_action(\'init\', \'callMyFunction\');
或者这个:do_action(\'init\', \'callMyFunction\');
非常感谢。
我想添加一个钩子,它是每当有人点击我网站上的页面、帖子或其他WP内容时,在WordPress中的任何其他内容执行之前运行的第一件事。
你能帮我弄一下那个钩子是什么样子吗?
是吗init
?
它看起来像这样吗:add_action(\'init\', \'callMyFunction\');
或者这个:do_action(\'init\', \'callMyFunction\');
非常感谢。
最早可以从外部代码访问的钩子是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();
});
我在下面定义了一个自定义帖子类型,我想添加一个自定义行操作,以允许我通过管理面板“更新”帖子class LeagueCpt { function __construct() { add_action( \'init\', array(&$this,\'registerLeagueCPT\')); add_filter(\'post_row_actions\', array(&$this,\'post_r