WP_Debug_Data::get_wp_themes_inactive(): array

In this article

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.

Gets the WordPress inactive themes section of the debug data.

Return

array

Source

private static function get_wp_themes_inactive(): array {
	$active_theme  = wp_get_theme();
	$parent_theme  = $active_theme->parent();
	$theme_updates = get_theme_updates();
	$transient     = get_site_transient( 'update_themes' );

	$auto_updates         = array();
	$auto_updates_enabled = wp_is_auto_update_enabled_for_type( 'theme' );
	if ( $auto_updates_enabled ) {
		$auto_updates = (array) get_site_option( 'auto_update_themes', array() );
	}

	// Populate a list of all themes available in the installation.
	$all_themes = wp_get_themes();
	$fields     = array();

	foreach ( $all_themes as $theme_slug => $theme ) {
		// Exclude the currently active theme from the list of all themes.
		if ( $active_theme->stylesheet === $theme_slug ) {
			continue;
		}

		// Exclude the currently active parent theme from the list of all themes.
		if ( ! empty( $parent_theme ) && $parent_theme->stylesheet === $theme_slug ) {
			continue;
		}

		$theme_version = $theme->version;
		$theme_author  = $theme->author;

		// Sanitize.
		$theme_author = wp_kses( $theme_author, array() );

		$theme_version_string       = __( 'No version or author information is available.' );
		$theme_version_string_debug = 'undefined';

		if ( ! empty( $theme_version ) && ! empty( $theme_author ) ) {
			/* translators: 1: Theme version number. 2: Theme author name. */
			$theme_version_string       = sprintf( __( 'Version %1$s by %2$s' ), $theme_version, $theme_author );
			$theme_version_string_debug = sprintf( 'version: %s, author: %s', $theme_version, $theme_author );
		} else {
			if ( ! empty( $theme_author ) ) {
				/* translators: %s: Theme author name. */
				$theme_version_string       = sprintf( __( 'By %s' ), $theme_author );
				$theme_version_string_debug = sprintf( 'author: %s, version: (undefined)', $theme_author );
			}

			if ( ! empty( $theme_version ) ) {
				/* translators: %s: Theme version number. */
				$theme_version_string       = sprintf( __( 'Version %s' ), $theme_version );
				$theme_version_string_debug = sprintf( 'author: (undefined), version: %s', $theme_version );
			}
		}

		if ( array_key_exists( $theme_slug, $theme_updates ) ) {
			/* translators: %s: Latest theme version number. */
			$theme_version_string       .= ' ' . sprintf( __( '(Latest version: %s)' ), $theme_updates[ $theme_slug ]->update['new_version'] );
			$theme_version_string_debug .= sprintf( ' (latest version: %s)', $theme_updates[ $theme_slug ]->update['new_version'] );
		}

		if ( $auto_updates_enabled ) {
			if ( isset( $transient->response[ $theme_slug ] ) ) {
				$item = $transient->response[ $theme_slug ];
			} elseif ( isset( $transient->no_update[ $theme_slug ] ) ) {
				$item = $transient->no_update[ $theme_slug ];
			} else {
				$item = array(
					'theme'        => $theme_slug,
					'new_version'  => $theme->version,
					'url'          => '',
					'package'      => '',
					'requires'     => '',
					'requires_php' => '',
				);
			}

			$auto_update_forced = wp_is_auto_update_forced_for_item( 'theme', null, (object) $item );

			if ( ! is_null( $auto_update_forced ) ) {
				$enabled = $auto_update_forced;
			} else {
				$enabled = in_array( $theme_slug, $auto_updates, true );
			}

			if ( $enabled ) {
				$auto_updates_string = __( 'Auto-updates enabled' );
			} else {
				$auto_updates_string = __( 'Auto-updates disabled' );
			}

			/**
			 * Filters the text string of the auto-updates setting for each theme in the Site Health debug data.
			 *
			 * @since 5.5.0
			 *
			 * @param string   $auto_updates_string The string output for the auto-updates column.
			 * @param WP_Theme $theme               An object of theme data.
			 * @param bool     $enabled             Whether auto-updates are enabled for this item.
			 */
			$auto_updates_string = apply_filters( 'theme_auto_update_debug_string', $auto_updates_string, $theme, $enabled );

			$theme_version_string       .= ' | ' . $auto_updates_string;
			$theme_version_string_debug .= ', ' . $auto_updates_string;
		}

		$fields[ sanitize_text_field( $theme->name ) ] = array(
			'label' => sprintf(
				/* translators: 1: Theme name. 2: Theme slug. */
				__( '%1$s (%2$s)' ),
				$theme->name,
				$theme_slug
			),
			'value' => $theme_version_string,
			'debug' => $theme_version_string_debug,
		);
	}

	return array(
		'label'      => __( 'Inactive Themes' ),
		'show_count' => true,
		'fields'     => $fields,
	);
}

Hooks

apply_filters( ‘theme_auto_update_debug_string’, string $auto_updates_string, WP_Theme $theme, bool $enabled )

Filters the text string of the auto-updates setting for each theme in the Site Health debug data.

Changelog

VersionDescription
6.7.0Introduced.

User Contributed Notes

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