wp_get_active_and_valid_themes(): string[]

In this article

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

Retrieves an array of active and valid themes.


While upgrading or installing WordPress, no themes are returned.


string[] Array of absolute paths to theme directories.


function wp_get_active_and_valid_themes() {
	global $pagenow, $wp_stylesheet_path, $wp_template_path;

	$themes = array();

	if ( wp_installing() && 'wp-activate.php' !== $pagenow ) {
		return $themes;

	if ( is_child_theme() ) {
		$themes[] = $wp_stylesheet_path;

	$themes[] = $wp_template_path;

	 * Remove themes from the list of active themes when we're on an endpoint
	 * that should be protected against WSODs and the theme is paused.
	if ( wp_is_recovery_mode() ) {
		$themes = wp_skip_paused_themes( $themes );

		// If no active and valid themes exist, skip loading themes.
		if ( empty( $themes ) ) {
			add_filter( 'wp_using_themes', '__return_false' );

	return $themes;



User Contributed Notes

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