Index: plugin.php
===================================================================
--- plugin.php	(revision 9124)
+++ plugin.php	(working copy)
@@ -97,6 +97,83 @@
 }
 
 /**
+ * Retrieve plugin data by name from plugin file.
+ *
+ * @since 2.7.0
+ * @link http://trac.wordpress.org/ticket/3047 Reason for function.
+ *
+ * @param string $name Lowercase string of plugin data name.
+ * @param string $file Plugin path for retrieving plugin info.
+ * @return string
+ */
+function get_plugin_info($name, $file) {
+	global $wp_active_plugins, $plugins_allowedtags;
+
+	if ( ! isset($wp_active_plugins) ) {
+		$wp_active_plugins = array();
+	}
+
+	$plugin_filename = plugin_basename($filename);
+
+	if ( ! isset($wp_active_plugins[$plugin_filename]) )
+	{
+		//Lazy Load the information
+		$plugin_data = get_plugin_data($filename);
+		
+		$plugin_data['Title'] = $plugin_data['Name'];
+		if ( !empty($plugin_data['PluginURI']) && !empty($plugin_data['Name']) )
+			$plugin_data['Title'] = '<a href="' . $plugin_data['PluginURI'] . '" title="'.__( 'Visit plugin homepage' ).'">' . $plugin_data['Name'] . '</a>';
+
+		if ( ! empty($plugin_data['AuthorURI']) )
+			$plugin_data['Author'] = '<a href="' . $plugin_data['AuthorURI'] . '" title="'.__( 'Visit author homepage' ).'">' . $plugin_data['Author'] . '</a>';
+
+		$plugin_data['Description'] = wptexturize( $plugin_data['Description'] );
+
+		// Sanitize all displayed data
+		$plugin_data['Title']       = wp_kses($plugin_data['Title'], $plugins_allowedtags);
+		$plugin_data['Version']     = wp_kses($plugin_data['Version'], $plugins_allowedtags);
+		$plugin_data['Description'] = wp_kses($plugin_data['Description'], $plugins_allowedtags);
+		$plugin_data['Author']      = wp_kses($plugin_data['Author'], $plugins_allowedtags);
+
+		if( ! empty($plugin_data['Author']) )
+			$plugin_data['Description'] .= ' <cite>' . sprintf( __('By %s'), $plugin_data['Author'] ) . '.</cite>';
+
+		if ( ! empty($plugin_data['Name']) ) {
+			$wp_active_plugins[$plugin_filename] = $plugin_data;
+		} else {
+			return '';
+		}
+	}
+
+	switch( $name ) {
+		case 'url':
+			return $wp_active_plugins[$plugin_filename]['URL'];
+			break;
+		case 'version':
+			return $wp_active_plugins[$plugin_filename]['Version'];
+			break;
+		case 'name':
+			return $wp_active_plugins[$plugin_filename]['Name'];
+			break;
+		case 'title':
+			return $wp_active_plugins[$plugin_filename]['Title'];
+			break;
+		case 'description':
+			return $wp_active_plugins[$plugin_filename]['Description'];
+			break;
+		case 'author':
+			return $wp_active_plugins[$plugin_filename]['Author'];
+			break;
+		case 'authoruri':
+			return $wp_active_plugins[$plugin_filename]['AuthorURI'];
+			break;
+		case 'pluginuri':
+			return $wp_active_plugins[$plugin_filename]['PluginURI'];
+			break;
+	}
+}
+
+/**
  * Check the plugins directory and retrieve all plugin files with plugin data.
  *
  * WordPress only supports plugin files in the base plugins directory
