WordPress php全局拦截器


WordPress php global interceptor

我正在尝试使用以下操作将全局拦截器添加到我的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 管理钩子文档