Bei MultiSite Network Update “Host kann nicht aufgetriggers werden”, überschreiben und mit der Aktualisierung fortfahren

Wenn das WordPress-Netzwerkupdate-Skript ausgeführt wird, stoppt das Skript dort und keine Sites werden aktualisiert, wenn es zu einer Site gelangt, die es “nicht auflösen kann”. Wenn also eine Site in einer 1000-Site-MultiSite-Installation vorhanden ist, die nicht aufgetriggers werden kann (dh Domain abgelaufen), können Sie das Update nicht auf Websites in Ihrem Netzwerk ausrollen. Sie können natürlich in den Netzwerk-Admin gehen und die Site entfernen, aber manchmal haben Sie keine Zeit, oder Sie wissen, dass die Domain erneuert wird (besonders wenn es Ihre eigene Domain ist).

Ich wurde einmal auf einen Workaround dafür hingewiesen. Aber leider hat keine Menge Google-Suche mir geholfen, es wieder zu finden.

Weiß jemand, wie man das erreicht?

Solutions Collecting From Web of "Bei MultiSite Network Update “Host kann nicht aufgetriggers werden”, überschreiben und mit der Aktualisierung fortfahren"

Ich würde sagen, dass das nicht möglich ist.

Hier ist der relevante Teil von /wp-admin/network/upgrade.php :

 $blogs = $wpdb->get_results( "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' AND spam = '0' AND deleted = '0' AND archived = '0' ORDER BY registered DESC LIMIT {$n}, 5", ARRAY_A ); if ( empty( $blogs ) ) { echo '

' . __( 'All done!' ) . '

'; break; } echo "
    "; foreach ( (array) $blogs as $details ) { $siteurl = get_blog_option( $details['blog_id'], 'siteurl' ); echo "
  • $siteurl
  • "; $response = wp_remote_get( trailingslashit( $siteurl ) . "wp-admin/upgrade.php?step=upgrade_db", array( 'timeout' => 120, 'httpversion' => '1.1' ) ); if ( is_wp_error( $response ) ) wp_die( sprintf( __( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s' ), $siteurl, $response->get_error_message() ) ); do_action( 'after_mu_upgrade', $response ); do_action( 'wpmu_upgrade_site', $details[ 'blog_id' ] ); }

Aber daraus können wir ein kleines Tool machen, um alle toten Blogs aufzulisten.
Und eine Option, um jeden zu deaktivieren * .

* Kopiert von /wp-admin/includes/class-wp-ms-sites-list-table.php .

Bildbeschreibung hier eingeben

 add_action( 'wp_network_dashboard_setup', 'wpse_52040_network_dashboard_setup' ); function wpse_52040_network_dashboard_setup() { wp_add_dashboard_widget( 'wpse_52040_dead_blogs_widget', __( 'Dead blogs' ), 'wpse_52040_dead_blogs' ); } function wpse_52040_dead_blogs() { global $wpdb; $blogs = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->blogs} WHERE spam = '0' AND deleted = '0' AND archived = '0' ORDER BY registered DESC, 5", ARRAY_A ) ); if ( empty( $blogs ) ) { echo '

No blogs!

'; break; } echo "
    "; foreach ( (array) $blogs as $details ) { $siteurl = get_blog_option( $details->blog_id, 'siteurl' ); $response = wp_remote_get( trailingslashit( $siteurl ) . "wp-admin/", array( 'timeout' => 120, 'httpversion' => '1.1' ) ); if ( is_wp_error( $response ) ) { $error = $response->get_error_message(); echo "
  • $siteurl
    "; echo '' . __( 'Deactivate' ) . '
    '; echo "Response -> $error
  • "; } } echo "
"; }