Wie überprüfe ich, ob ein Thema aktiv ist?

11

Ich möchte überprüfen können, ob das zwölfundzwanzigste Thema aktiv ist. Ich weiß, wenn ich nach einem aktiven Plugin suchen würde, würde ich Folgendes tun:

$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' );
}

Wie kann ich überprüfen, ob ein Thema aktiv ist, damit ich eine Funktion für dieses Thema ausführen kann?

Jeremiah Prummer
quelle
1
Du meinst so etwas wie diesen codex.wordpress.org/Function_Reference/wp_get_theme
Bainternet

Antworten:

20

Sie können verwenden 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
}

Oder Sie können einfach überprüfen, ob eine Funktion in zweiundzwanzig vorhanden ist - was wahrscheinlich weniger zuverlässig ist. Ein Plugin oder sogar ein anderes Thema könnte beispielsweise deklarieren twentytwelve_setup.

<?php
if ( function_exists( 'twentytwelve_setup' ) ) {
   // Twenty Twelve is the current theme or the active theme's parent.
}
chrisguitarguy
quelle
5
  if( 'twentytwelve' == get_option( 'template' ) ) {
    // do something
  }
Lügen
quelle