我有一个类似的要求,我不应该让用户访问作者。基于用户所处角色的php页面。我注册template\\u redirect操作来进行检查,甚至在加载实际页面之前,我也会重定向到404页面。
注册:
add_action( \'template_redirect\', [ $this, \'handle_inactive_users\']);
处理程序:
public function handle_inactive_users() {
global $wp_query;
if ( $wp_query->is_author() ) {
$user = $wp_query->get_queried_object();
if ( is_a( $user, \\WP_User::class ) && $user->has_cap( \'inactive\' ) ) {
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 );
exit();
}
}
}
如果您选择仅在模板部分的中间使用以下代码段,则该页面可能已经部分呈现,并且实际上没有重定向到404页面。所以最好在
template_redirect
行动-
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 );
exit();