WordPress at a glance
function is not described

_get_plugin_data_markup_translate() WP 2.7.0

Sanitizes plugin data, optionally adds markup, optionally translates.

  • See: get_plugin_data()

No Hooks.

Return

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 (true/false)
    Whether the plugin can only be activated network-wide.

Usage

_get_plugin_data_markup_translate( $plugin_file, $plugin_data, $markup, $translate );
$plugin_file(string) (required)
Path to the main plugin file.
$plugin_data(array) (required)
An array of plugin data. See get_plugin_data().
$markup(true/false)
If the returned data should have HTML markup applied.
Default: true
$translate(true/false)
If the returned data should be translated.
Default: true

Code of get plugin data markup translate: wp-admin/includes/plugin.php VER 5.1.1

<?php
function _get_plugin_data_markup_translate( $plugin_file, $plugin_data, $markup = true, $translate = true ) {

	// Sanitize the plugin filename to a WP_PLUGIN_DIR relative path
	$plugin_file = plugin_basename( $plugin_file );

	// Translate fields
	if ( $translate ) {
		if ( $textdomain = $plugin_data['TextDomain'] ) {
			if ( ! is_textdomain_loaded( $textdomain ) ) {
				if ( $plugin_data['DomainPath'] ) {
					load_plugin_textdomain( $textdomain, false, dirname( $plugin_file ) . $plugin_data['DomainPath'] );
				} else {
					load_plugin_textdomain( $textdomain, false, dirname( $plugin_file ) );
				}
			}
		} elseif ( 'hello.php' == basename( $plugin_file ) ) {
			$textdomain = 'default';
		}
		if ( $textdomain ) {
			foreach ( array( 'Name', 'PluginURI', 'Description', 'Author', 'AuthorURI', 'Version' ) as $field ) {
				// phpcs:ignore WordPress.WP.I18n.LowLevelTranslationFunction,WordPress.WP.I18n.NonSingularStringLiteralText,WordPress.WP.I18n.NonSingularStringLiteralDomain
				$plugin_data[ $field ] = translate( $plugin_data[ $field ], $textdomain );
			}
		}
	}

	// Sanitize fields
	$allowed_tags_in_links = array(
		'abbr'    => array( 'title' => true ),
		'acronym' => array( 'title' => true ),
		'code'    => true,
		'em'      => true,
		'strong'  => true,
	);

	$allowed_tags      = $allowed_tags_in_links;
	$allowed_tags['a'] = array(
		'href'  => true,
		'title' => true,
	);

	// Name is marked up inside <a> tags. Don't allow these.
	// Author is too, but some plugins have used <a> here (omitting Author URI).
	$plugin_data['Name']   = wp_kses( $plugin_data['Name'], $allowed_tags_in_links );
	$plugin_data['Author'] = wp_kses( $plugin_data['Author'], $allowed_tags );

	$plugin_data['Description'] = wp_kses( $plugin_data['Description'], $allowed_tags );
	$plugin_data['Version']     = wp_kses( $plugin_data['Version'], $allowed_tags );

	$plugin_data['PluginURI'] = esc_url( $plugin_data['PluginURI'] );
	$plugin_data['AuthorURI'] = esc_url( $plugin_data['AuthorURI'] );

	$plugin_data['Title']      = $plugin_data['Name'];
	$plugin_data['AuthorName'] = $plugin_data['Author'];

	// Apply markup
	if ( $markup ) {
		if ( $plugin_data['PluginURI'] && $plugin_data['Name'] ) {
			$plugin_data['Title'] = '<a href="' . $plugin_data['PluginURI'] . '">' . $plugin_data['Name'] . '</a>';
		}

		if ( $plugin_data['AuthorURI'] && $plugin_data['Author'] ) {
			$plugin_data['Author'] = '<a href="' . $plugin_data['AuthorURI'] . '">' . $plugin_data['Author'] . '</a>';
		}

		$plugin_data['Description'] = wptexturize( $plugin_data['Description'] );

		if ( $plugin_data['Author'] ) {
			$plugin_data['Description'] .= ' <cite>' . sprintf( __( 'By %s.' ), $plugin_data['Author'] ) . '</cite>';
		}
	}

	return $plugin_data;
}