get_plugin_data

Получает данные плагина (указанные в заголовках) по переданному пути на основной файл плагина.

Все данные берутся из заголовков плагина. Данные плагина должны располагаться на отдельной строке. В описании плагинов не должно быть переносов строк, иначе только часть описания будет показана. Формат заголовка такой:

get_plugin_data( $plugin_file, $markup, $translate );
$plugin_file(строка) (обязательный)
Путь к основному файлу плагина. Пр: __FILE__
$markup(логический)
Выводить HTML разметку в данных (true) или нет (false).
По умолчанию: true
$translate(логический)
Переводить данные или нет.
По умолчанию: true

Примеры

#1 Получим данные

Пример, как можно получить данные плагина при создании плагина.

Хотя, я что-то с трудом могу представить, где это может понадобиться, поэтому пусть это будет демонстрационный пример:

<?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',
		// 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;
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *