1. drupal
    1. 8
    2. 7
7 – 8 hook_custom_theme()

Return the machine-readable name of the theme to use for the current page.

This hook can be used to dynamically set the theme for the current page request. It should be used by modules which need to override the theme based on dynamic conditions (for example, a module which allows the theme to be set based on the current user's role). The return value of this hook will be used on all pages except those which have a valid per-page or per-section theme set via a theme callback function in hook_menu(); the themes on those pages can only be overridden using hook_menu_alter().

Since only one theme can be used at a time, the last (i.e., highest weighted) module which returns a valid theme name from this hook will prevail.

Return value

The machine-readable name of the theme that should be used for the current page request. The value returned from this function will only have an effect if it corresponds to a currently-active theme on the site.

Related topics


modules/system/system.api.php, line 2152

function hook_custom_theme() {
  // Allow the user to request a particular theme via a query parameter.
  if (isset($_GET['theme'])) {
    return $_GET['theme'];