Drupal: Check if the current page is using the admin theme
Snippet
if (\Drupal::service('router.admin_context')->isAdminRoute()) {
// ...
}
The router.admin_context
service maps to the AdminContext
helper class.
isAdminRoute()
simply checks the Route
for the _admin_route option.
Pitfalls
When working with a Route object, it's tempting to check for the _admin_route
option directly, instead of using the router_admin_context
service. The problem here is any customization of the service will be ignored.
Relevant links
- Admin paths are now defined as part of route definitions: Drupal 7 to 8 change record, with a Matching admin routes section referring to this.
- Structure of routes: Information about the _admin_route option (and Drupal routes in general).
- How to check if the current page using admin theme in Drupal?: Similar blog post.