WP_MS_Sites_List_Table::site_states()protectedWP 5.3.0

Determines whether to output comma-separated site states.

Method of the class: WP_MS_Sites_List_Table{}

Hooks from the method

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->site_states( $site );
$site(array) (required)
-

Changelog

Since 5.3.0 Introduced.

WP_MS_Sites_List_Table::site_states() code WP 6.5.2

protected function site_states( $site ) {
	$site_states = array();

	// $site is still an array, so get the object.
	$_site = WP_Site::get_instance( $site['blog_id'] );

	if ( is_main_site( $_site->id ) ) {
		$site_states['main'] = __( 'Main' );
	}

	reset( $this->status_list );

	$site_status = isset( $_REQUEST['status'] ) ? wp_unslash( trim( $_REQUEST['status'] ) ) : '';
	foreach ( $this->status_list as $status => $col ) {
		if ( '1' === $_site->{$status} && $site_status !== $status ) {
			$site_states[ $col[0] ] = $col[1];
		}
	}

	/**
	 * Filters the default site display states for items in the Sites list table.
	 *
	 * @since 5.3.0
	 *
	 * @param string[] $site_states An array of site states. Default 'Main',
	 *                              'Archived', 'Mature', 'Spam', 'Deleted'.
	 * @param WP_Site  $site        The current site object.
	 */
	$site_states = apply_filters( 'display_site_states', $site_states, $_site );

	if ( ! empty( $site_states ) ) {
		$state_count = count( $site_states );

		$i = 0;

		echo ' — ';

		foreach ( $site_states as $state ) {
			++$i;

			$separator = ( $i < $state_count ) ? ', ' : '';

			echo "<span class='post-state'>{$state}{$separator}</span>";
		}
	}
}