get_theme_data()
云策文档标注
概述
get_theme_data() 是一个已弃用的 WordPress 函数,用于从解析的主题文件中检索主题数据。自 WordPress 3.4.0 起,建议使用 wp_get_theme() 替代。
关键要点
- 函数已弃用:自 WordPress 3.4.0 起,get_theme_data() 被标记为弃用,推荐使用 wp_get_theme()。
- 功能:通过 WP_Theme 对象获取主题的元数据,如名称、版本、作者等。
- 参数:接受一个必需参数 $theme_file,表示主题文件路径。
- 返回值:返回一个包含主题数据的数组。
- 相关函数:涉及 WP_Theme::__construct()、wp_basename()、_deprecated_function() 和 apply_filters() 等。
代码示例
function get_theme_data( $theme_file ) {
_deprecated_function( __FUNCTION__, '3.4.0', 'wp_get_theme()' );
$theme = new WP_Theme( wp_basename( dirname( $theme_file ) ), dirname( dirname( $theme_file ) ) );
$theme_data = array(
'Name' => $theme->get('Name'),
'URI' => $theme->display('ThemeURI', true, false),
'Description' => $theme->display('Description', true, false),
'Author' => $theme->display('Author', true, false),
'AuthorURI' => $theme->display('AuthorURI', true, false),
'Version' => $theme->get('Version'),
'Template' => $theme->get('Template'),
'Status' => $theme->get('Status'),
'Tags' => $theme->get('Tags'),
'Title' => $theme->get('Name'),
'AuthorName' => $theme->get('Author'),
);
foreach ( apply_filters( 'extra_theme_headers', array() ) as $extra_header ) {
if ( ! isset( $theme_data[ $extra_header ] ) )
$theme_data[ $extra_header ] = $theme->get( $extra_header );
}
return $theme_data;
}注意事项
- 弃用警告:使用此函数会触发 _deprecated_function(),建议更新代码以避免未来兼容性问题。
- 替代方案:优先使用 wp_get_theme() 来获取主题数据,它提供更现代和稳定的接口。
原文内容
Retrieve theme data from parsed theme file.
Description
See also
Parameters
$theme_filestringrequired-
Theme file path.
Source
function get_theme_data( $theme_file ) {
_deprecated_function( __FUNCTION__, '3.4.0', 'wp_get_theme()' );
$theme = new WP_Theme( wp_basename( dirname( $theme_file ) ), dirname( dirname( $theme_file ) ) );
$theme_data = array(
'Name' => $theme->get('Name'),
'URI' => $theme->display('ThemeURI', true, false),
'Description' => $theme->display('Description', true, false),
'Author' => $theme->display('Author', true, false),
'AuthorURI' => $theme->display('AuthorURI', true, false),
'Version' => $theme->get('Version'),
'Template' => $theme->get('Template'),
'Status' => $theme->get('Status'),
'Tags' => $theme->get('Tags'),
'Title' => $theme->get('Name'),
'AuthorName' => $theme->get('Author'),
);
foreach ( apply_filters( 'extra_theme_headers', array() ) as $extra_header ) {
if ( ! isset( $theme_data[ $extra_header ] ) )
$theme_data[ $extra_header ] = $theme->get( $extra_header );
}
return $theme_data;
}
Changelog
| Version | Description |
|---|---|
| 3.4.0 | Deprecated. Use wp_get_theme() |
| 1.5.0 | Introduced. |