get_plugin_data()
最后更新于:2021-11-26 11:34:45
get_plugin_data( string$plugin_file, bool$markup=true, bool$translate=true)Parses the plugin contents to retrieve plugin’s metadata.
参数
- $plugin_file
-
(string) (Required) Absolute path to the main plugin file.
- $markup
-
(bool) (Optional) If the returned data should have HTML markup applied.
Default value: true
- $translate
-
(bool) (Optional) If the returned data should be translated.
Default value: true
响应
(array) Plugin data. Values will be empty if not supplied by the plugin.
-
‘Name’
(string) Name of the plugin. Should be unique. -
‘Title’
(string) Title of the plugin and link to the plugin’s site (if set). -
‘Description’
(string) Plugin description. -
‘Author’
(string) Author’s name. -
‘AuthorURI’
(string) Author’s website address (if set). -
‘Version’
(string) Plugin version. -
‘TextDomain’
(string) Plugin textdomain. -
‘DomainPath’
(string) Plugins relative directory path to .mo files. -
‘Network’
(bool) Whether the plugin can only be activated network-wide. -
‘RequiresGC’
(string) Minimum required version of GeChiUI. -
‘RequiresPHP’
(string) Minimum required version of PHP. -
‘UpdateURI’
(string) ID of the plugin for update purposes, should be a URI.
源文件
文件: gc-admin/includes/plugin.php
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',
'RequiresGC' => '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;
}