_wp_connectors_resolve_ai_provider_logo_url( string $path ): non-empty-string|null

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only by core. It is listed here for completeness.

Resolves an AI provider logo file path to a URL.

Description

Converts an absolute file path to a plugin URL. The path must reside within the plugins or must-use plugins directory.

Parameters

$pathstringrequired
Absolute path to the logo file.

Return

non-empty-string|null The URL to the logo file, or null if the path is invalid.

Source

function _wp_connectors_resolve_ai_provider_logo_url( string $path ): ?string {
	if ( ! $path ) {
		return null;
	}

	$path = wp_normalize_path( $path );

	if ( ! file_exists( $path ) ) {
		return null;
	}

	$mu_plugin_dir = wp_normalize_path( WPMU_PLUGIN_DIR );
	if ( str_starts_with( $path, $mu_plugin_dir . '/' ) ) {
		$logo_url = plugins_url( substr( $path, strlen( $mu_plugin_dir ) ), WPMU_PLUGIN_DIR . '/.' );
		return $logo_url ? $logo_url : null;
	}

	$plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
	if ( str_starts_with( $path, $plugin_dir . '/' ) ) {
		$logo_url = plugins_url( substr( $path, strlen( $plugin_dir ) ) );
		return $logo_url ? $logo_url : null;
	}

	_doing_it_wrong(
		__FUNCTION__,
		__( 'Provider logo path must be located within the plugins or must-use plugins directory.' ),
		'7.0.0'
	);

	return null;
}

Changelog

VersionDescription
7.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.