WordPress php全局拦截器

时间:2016-01-26 15:27:16

标签: php wordpress

我尝试使用以下操作将全局拦截器添加到我的WordPress应用程序中:

add_action( 'template_redirect', 'somefunc' );

function somefunc() {
    //do some logic
}

它仅适用于前端页面并且在仪表板中不起作用,例如,不会为以下URL调用此挂钩:

http://example.com/wp-admin/profile.php

如何为管理页面设置此全局挂钩?

2 个答案:

答案 0 :(得分:2)

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/

答案 1 :(得分:1)

管理员没有以相同的方式使用模板,因此您需要添加一个管理钩子:

 add_action( 'admin_init', 'somefunc' );

Wordpress Admin Hook Documentation