Как проверить, активна ли тема?

8 апр. 2013 г., 02:50:05
Просмотры: 16.4K
Голосов: 16

Мне нужно проверить, активна ли тема TwentyTwelve. Если бы я проверял активный плагин, я бы сделал что-то вроде:

$active_plugins = apply_filters( 'active_plugins', get_option( 'active_plugins' ) );
if ( in_array( 'plugin-folder/plugin-folder.php', $active_plugins ) ) {
    // выполнить действия  
} else {
add_action( 'admin_notices', 'create-a-notice' );
}

Как правильно проверить активность темы, чтобы я мог выполнить функцию для этой темы?

1
Комментарии

Вы имеете в виду что-то вроде этого http://codex.wordpress.org/Function_Reference/wp_get_theme

Bainternet Bainternet
8 апр. 2013 г. 03:16:51
Все ответы на вопрос 2
0
29

Вы можете использовать функцию wp_get_theme:

<?php
$theme = wp_get_theme(); // получает текущую тему
if ( 'Twenty Twelve' == $theme->name || 'Twenty Twelve' == $theme->parent_theme ) {
    // если выполнение дошло сюда, значит Twenty Twelve является активной темой или
    // родительской темой для текущей темы
}

Или же можно просто проверить существование функции из twentytwelve — хотя это менее надежно; плагин или даже другая тема могут объявить функцию twentytwelve_setup, например.

<?php
if ( function_exists( 'twentytwelve_setup' ) ) {
   // Twenty Twelve является текущей темой или родительской темой для активной темы.
}
8 апр. 2013 г. 05:45:51
1
10
  if( 'twentytwelve' == get_option( 'template' ) ) {
    // сделать что-то
  }
8 апр. 2013 г. 05:26:20
Комментарии

Мне очень нравится этот вариант, и вы даже можете нацелиться на другие функции, которые непосредственно относятся к тому, что вы пытаетесь сделать в плагине. Хороший ответ, @liying

Tony Djukic Tony Djukic
11 янв. 2021 г. 16:33:05