wp_get_theme()WP 3.4.0

Получает объект WP_Theme, который содержит информацию о текущей теме.

Аналогичная функция для получения данных плагинов: get_plugins().

Работает на основе: WP_Theme()
1 раз — 0.00056 сек (медленно) | 50000 раз — 2.02 сек (быстро) | PHP 7.0.5, WP 4.5.2

Хуков нет.

Возвращает

WP_Theme. Экземпляр объекта WP_Theme, который содержит следующие данные:

  • Name - название темы указанное в style.css;
  • ThemeURI - УРЛ страницы шаблона;
  • Description - описание темы;
  • Author - автор темы;
  • AuthorURI - УРЛ автора темы;
  • Version - текущая версия;
  • Template - (произвольно используется в дочерних темах) название папки родительской темы;
  • Status - опубликована ли тема;
  • Tags - метки используемые для описания темы;
  • TextDomain - название, используемое при локализации темы;
  • DomainPath - путь до файлов перевода темы;

Использование

$theme = wp_get_theme( $stylesheet, $theme_root );
$stylesheet(строка)
Название каталога в котором находится тема, обычно оно совпадает с названием самой темы. По умолчанию название текущей темы.
По умолчанию: null
$theme_root(строка)
Полный путь до каталога в котором расположена тема. По умолчанию, путь получается функцией get_raw_theme_root().
По умолчанию: null

Примеры

0

#1 Демонстрация

Давайте посмотрим, как выглядит получаемый объект. Используем функцию на дефолтной теме twentyfourteen:

WP_Theme Object
(
	[theme_root:WP_Theme:private] => C:\sites\example.com\www/wp-content/themes
	[headers:WP_Theme:private] => Array
		(
			[Name] => Twenty Fourteen
			[ThemeURI] => http://wordpress.org/themes/twentyfourteen
			[Description] => In 2014, our default theme lets you create a responsive magazine website with a sleek, modern design. Feature your favorite homepage content in either a grid or a slider. Use the three widget areas to customize your website, and change your content's layout with a full-width page template and a contributor page to show off your authors. Creating a magazine website with WordPress has never been easier.
			[Author] => the WordPress team
			[AuthorURI] => http://wordpress.org/
			[Version] => 1.0
			[Template] => 
			[Status] => 
			[Tags] => black, green, white, light, dark, two-columns, three-columns, left-sidebar, right-sidebar, fixed-layout, responsive-layout, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready
			[TextDomain] => twentyfourteen
			[DomainPath] => 
		)

	[headers_sanitized:WP_Theme:private] => 
	[name_translated:WP_Theme:private] => 
	[errors:WP_Theme:private] => 
	[stylesheet:WP_Theme:private] => twentyfourteen
	[template:WP_Theme:private] => twentyfourteen
	[parent:WP_Theme:private] => 
	[theme_root_uri:WP_Theme:private] => 
	[textdomain_loaded:WP_Theme:private] => 
	[cache_hash:WP_Theme:private] => ea3ba1457a0fbfd275006de061bbffe5
)
0

#2 Выведем название текущей активной темы

echo wp_get_theme();
0

#3 Выведем название установленной темы

$my_theme = wp_get_theme( 'twentyten' );
if ( $my_theme->exists() )
	echo $my_theme;
0

#4 Выведем версию текущей темы

$my_theme = wp_get_theme();
echo $my_theme->get( 'Name' ) . " версия " . $my_theme->get( 'Version' );
0

#5 Выведем URL автора текущей темы

$my_theme = wp_get_theme();
echo $my_theme->get( 'AuthorURI' );
0

#6 Выведем другие данные текущей темы

$my_theme = wp_get_theme();
echo $my_theme->get( 'TextDomain' );
echo $my_theme->get( 'ThemeURI' );

Заметки

  • Global. Массив. $wp_theme_directories

Список изменений

С версии 3.4.0 Введена.

Код wp_get_theme() WP 6.6.2

function wp_get_theme( $stylesheet = '', $theme_root = '' ) {
	global $wp_theme_directories;

	if ( empty( $stylesheet ) ) {
		$stylesheet = get_stylesheet();
	}

	if ( empty( $theme_root ) ) {
		$theme_root = get_raw_theme_root( $stylesheet );
		if ( false === $theme_root ) {
			$theme_root = WP_CONTENT_DIR . '/themes';
		} elseif ( ! in_array( $theme_root, (array) $wp_theme_directories, true ) ) {
			$theme_root = WP_CONTENT_DIR . $theme_root;
		}
	}

	return new WP_Theme( $stylesheet, $theme_root );
}