我正在尝试使用以下操作将全局拦截器添加到我的WordPress应用程序中:
add_action( 'template_redirect', 'somefunc' );
function somefunc() {
//do some logic
}
它仅适用于前端页面,在仪表板中不起作用,例如,不会为以下 url 调用此钩子:
http://example.com/wp-admin/profile.php
如何为管理页面设置此全局钩子?
template_redirect
操作仅在站点的前端触发。根据要执行逻辑的时间,可以挂接到几个不同的操作。
通常,只需挂上init
并在那里触发您的逻辑就可以了:
add_action( 'init', 'somefunc' );
function somefunc() {
//do some logic which executes on front end and admin.
}
如果这对您的代码来说还为时过早,请查看在典型请求期间触发的操作和过滤器列表,然后尝试稍后的请求:https://codex.wordpress.org/Plugin_API/Action_Reference/
管理员使用
模板的方式不同,因此您需要添加管理员挂钩:
add_action( 'admin_init', 'somefunc' );
WordPress 管理钩子文档