Jak sprawdzić, czy motyw jest aktywny?

11

Chciałbym móc sprawdzić, czy motyw dwadzieścia dwanaście jest aktywny. Wiem, że gdybym szukał aktywnej wtyczki, zrobiłbym coś takiego:

$active_plugins = apply_filters( 'active_plugins', get_option( 'active_plugins' ) );
if ( in_array( 'plugin-folder/plugin-folder.php', $active_plugins ) ) {
    //do stuff
} else {
add_action( 'admin_notices', 'create-a-notice' );
}

Jaki jest właściwy sposób sprawdzenia, czy motyw jest aktywny, aby można było uruchomić funkcję dla tego motywu?

Jeremiasz Prummer
źródło
1
Masz na myśli coś takiego: codex.wordpress.org/Function_Reference/wp_get_theme
Bainternet

Odpowiedzi:

22

Możesz użyć wp_get_theme:

<?php
$theme = wp_get_theme(); // gets the current theme
if ( 'Twenty Twelve' == $theme->name || 'Twenty Twelve' == $theme->parent_theme ) {
    // if you're here Twenty Twelve is the active theme or is
    // the current theme's parent theme
}

Lub możesz po prostu sprawdzić, czy istnieje funkcja w dwunastu dwunastu - co jest prawdopodobnie mniej niezawodne; twentytwelve_setupna przykład może zadeklarować wtyczka lub nawet inny motyw .

<?php
if ( function_exists( 'twentytwelve_setup' ) ) {
   // Twenty Twelve is the current theme or the active theme's parent.
}
chrisguitarguy
źródło
5
  if( 'twentytwelve' == get_option( 'template' ) ) {
    // do something
  }
liying
źródło