Veröffentlicht von & unter Wordpress.

Nach einem Update eines älteren WordPress MU Blogs auf die aktuelle Multisite WordPress Version 3.8, hatte ich folgenden Fehler.

Dieser Blog wurde deaktiviert oder archiviert.

Eine Anmeldung im Dashboard war nicht mehr möglich und die Seite zeigte nur noch diese Meldung. Ein Blick in die Tabelle wp_blogs zeigte dann, dass das Flag archived auf 1 gesetzt war. Nachdem die Werte auf 0 gesetzt wurden, klappte der Blog wieder. Allerdings musste ich den Apache neustarten und den Flexicache löschen.

Ich habe dann noch ein wenig rechechiert und eine Funktion gefunden, die wohl nur die wenigsten brauchen.

ms_site_check ( No parameters )
Returns:
  • (bool|string) Returns true on success, or drop-in file to include.
Defined at:
Codex

Diese Funktion gibt es seit WordPress 3.0 und überprüft das vorhandensein einiger Dateien:

function ms_site_check() {
	$blog = get_blog_details();

	/**
	 * Filter checking the status of the current blog.
	 *
	 * @since 3.0.0
	 *
	 * @param bool null Whether to skip the blog status check. Default null.
	*/
	$check = apply_filters( 'ms_site_check', null );
	if ( null !== $check )
		return true;

	// Allow super admins to see blocked sites
	if ( is_super_admin() )
		return true;

	if ( '1' == $blog->deleted ) {
		if ( file_exists( WP_CONTENT_DIR . '/blog-deleted.php' ) )
			return WP_CONTENT_DIR . '/blog-deleted.php';
		else
			wp_die( __( 'This user has elected to delete their account and the content is no longer available.' ), '', array( 'response' => 410 ) );
	}

	if ( '2' == $blog->deleted ) {
		if ( file_exists( WP_CONTENT_DIR . '/blog-inactive.php' ) )
			return WP_CONTENT_DIR . '/blog-inactive.php';
		else
			wp_die( sprintf( __( 'This site has not been activated yet. If you are having problems activating your site, please contact %1$s.' ), str_replace( '@', ' AT ', get_site_option( 'admin_email', 'support@' . get_current_site()->domain ) ) ) );
	}

	if ( $blog->archived == '1' || $blog->spam == '1' ) {
		if ( file_exists( WP_CONTENT_DIR . '/blog-suspended.php' ) )
			return WP_CONTENT_DIR . '/blog-suspended.php';
		else
			wp_die( __( 'This site has been archived or suspended.' ), '', array( 'response' => 410 ) );
	}

	return true;
}

Eine Funktion die sehr speziell ist und die ich gleich deaktiert habe. Sinnvoll für WP Hoster aber nicht für das Hosten eigener Blogs. Zum dem ist die Funktion noch teuer.