wp_register_plugin_realpath()WP 3.9.0

Register a plugin's real path.

This is used in plugin_basename() to resolve symlinked paths.

No Hooks.

Return

true|false. Whether the path was able to be registered.

Usage

wp_register_plugin_realpath( $file );
$file(string) (required)
Known path to the file.

Notes

Changelog

Since 3.9.0 Introduced.

wp_register_plugin_realpath() code WP 6.4.3

function wp_register_plugin_realpath( $file ) {
	global $wp_plugin_paths;

	// Normalize, but store as static to avoid recalculation of a constant value.
	static $wp_plugin_path = null, $wpmu_plugin_path = null;

	if ( ! isset( $wp_plugin_path ) ) {
		$wp_plugin_path   = wp_normalize_path( WP_PLUGIN_DIR );
		$wpmu_plugin_path = wp_normalize_path( WPMU_PLUGIN_DIR );
	}

	$plugin_path     = wp_normalize_path( dirname( $file ) );
	$plugin_realpath = wp_normalize_path( dirname( realpath( $file ) ) );

	if ( $plugin_path === $wp_plugin_path || $plugin_path === $wpmu_plugin_path ) {
		return false;
	}

	if ( $plugin_path !== $plugin_realpath ) {
		$wp_plugin_paths[ $plugin_path ] = $plugin_realpath;
	}

	return true;
}