16

I'd like to be able to check if the twentytwelve theme is active. I know if I was checking for an active plugin I'd do something like:

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

What's the proper way to check if a theme is active so I can run a function for that theme?

1

2 Answers 2

29

You can use 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
}

Or, you can simply check if a function in twentytwelve exists -- which is likely less reliable; a plugin, or even another theme, could declare twentytwelve_setup, for instance.

<?php
if ( function_exists( 'twentytwelve_setup' ) ) {
   // Twenty Twelve is the current theme or the active theme's parent.
}
0
10
  if( 'twentytwelve' == get_option( 'template' ) ) {
    // do something
  }
1
  • I really like this option and you could even target other functions that specifically pertain to what you're attempting to do in the plugin. Good answer @liying Commented Jan 11, 2021 at 14:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.