get_plugin_data

函数
get_plugin_data ( $plugin_file, $markup = true, $translate = true )
参数
  • (string) $plugin_file Absolute path to the main plugin file.
    Required:
  • (bool) $markup Optional. If the returned data should have HTML markup applied. Default true.
    Required:
    Default: true
  • (bool) $translate Optional. If the returned data should be translated. Default true.
    Required:
    Default: true
返回值
  • (array) { Plugin data. Values will be empty if not supplied by the plugin. @type string $Name Name of the plugin. Should be unique. @type string $PluginURI Plugin URI. @type string $Version Plugin version. @type string $Description Plugin description. @type string $Author Plugin author's name. @type string $AuthorURI Plugin author's website address (if set). @type string $TextDomain Plugin textdomain. @type string $DomainPath Plugin's relative directory path to .mo files. @type bool $Network Whether the plugin can only be activated network-wide. @type string $RequiresWP Minimum required version of WordPress. @type string $RequiresPHP Minimum required version of PHP. @type string $UpdateURI ID of the plugin for update purposes, should be a URI. @type string $Title Title of the plugin and link to the plugin's site (if set). @type string $AuthorName Plugin author's name. }
定义位置
相关方法
get_plugin_updatesget_pluginsget_inline_dataget_file_dataget_plugin_files
引入
1.5.0
弃用
-

get_plugin_data函数是一个WordPress函数,用于检索一个插件的元数据: 这个函数接受一个参数,即你想检索元数据的插件文件的路径: 该函数返回一个指定插件的元数据数组,包括名称、版本、作者和其他信息。

对插件的内容进行解析,以检索插件的元数据。

所有插件的标题必须在自己的行上。插件描述不能有任何新行,否则将只显示部分描述。下面的内容是打印用的格式。
/*
Plugin Name: Name of the plugin.
Plugin URI: The home page of the plugin.
Description: Plugin description.
Author: Plugin author’s name.
Author URI: Link to the author’s website.
Version: Plugin version.
Text Domain: Optional. Unique identifier, should be same as the one used in load_plugin_textdomain().
Domain Path: Optional. Only useful if the translations are located in a folder above the plugin’s base path. For example, if .mo files are located in the locale folder then Domain Path will be”/locale/” and must have the first slash. Defaults to the base folder the plugin is located in.
Network: Optional. Specify”Network: true” to require that a plugin is activated across all sites in an installation. This will prevent a plugin from being activated on a single site when Multisite is enabled.
Requires at least: Optional. Specify the minimum required WordPress version.
Requires PHP: Optional. Specify the minimum required PHP version.
* / # Remove the space to close comment.

文件的前8KB将被拉入,如果插件数据不在这前8KB内,那么插件作者应该修正他们的插件,并将插件数据头移到顶部。

插件文件被认为具有允许脚本读取该文件的权限。然而,这一点并没有被检查,该文件只被打开用于阅读。

function get_plugin_data( $plugin_file, $markup = true, $translate = true ) {

	$default_headers = array(
		'Name'        => 'Plugin Name',
		'PluginURI'   => 'Plugin URI',
		'Version'     => 'Version',
		'Description' => 'Description',
		'Author'      => 'Author',
		'AuthorURI'   => 'Author URI',
		'TextDomain'  => 'Text Domain',
		'DomainPath'  => 'Domain Path',
		'Network'     => 'Network',
		'RequiresWP'  => 'Requires at least',
		'RequiresPHP' => 'Requires PHP',
		'UpdateURI'   => 'Update URI',
		// Site Wide Only is deprecated in favor of Network.
		'_sitewide'   => 'Site Wide Only',
	);

	$plugin_data = get_file_data( $plugin_file, $default_headers, 'plugin' );

	// Site Wide Only is the old header for Network.
	if ( ! $plugin_data['Network'] && $plugin_data['_sitewide'] ) {
		/* translators: 1: Site Wide Only: true, 2: Network: true */
		_deprecated_argument( __FUNCTION__, '3.0.0', sprintf( __( 'The %1$s plugin header is deprecated. Use %2$s instead.' ), '<code>Site Wide Only: true</code>', '<code>Network: true</code>' ) );
		$plugin_data['Network'] = $plugin_data['_sitewide'];
	}
	$plugin_data['Network'] = ( 'true' === strtolower( $plugin_data['Network'] ) );
	unset( $plugin_data['_sitewide'] );

	// If no text domain is defined fall back to the plugin slug.
	if ( ! $plugin_data['TextDomain'] ) {
		$plugin_slug = dirname( plugin_basename( $plugin_file ) );
		if ( '.' !== $plugin_slug && false === strpos( $plugin_slug, '/' ) ) {
			$plugin_data['TextDomain'] = $plugin_slug;
		}
	}

	if ( $markup || $translate ) {
		$plugin_data = _get_plugin_data_markup_translate( $plugin_file, $plugin_data, $markup, $translate );
	} else {
		$plugin_data['Title']      = $plugin_data['Name'];
		$plugin_data['AuthorName'] = $plugin_data['Author'];
	}

	return $plugin_data;
}

常见问题

FAQs
查看更多 >