函数文档

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.

Return

array Theme data.

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.