WordPress Multisite Funktionalität entfernen

Das Entfernen der Multisite Funktionalität in WordPress, vorhanden seit WP 3.0, erfordert einige Schritte, wie genau und was es zu beachten gibt, beschreibe ich einer kurzen Liste.

Die Multisite Funktionalität von WordPress ist relativ schnell aktiviert, siehe dazu ein Beitrag bei WordPress Deutschland, und die nötigen Schritte werden im Backend der Installation dargestellt. Nicht immer will man aber die Funktionalität erhalten und so kann es vorkommen, dass man einen Schritt zurück will und so müssen diverse Schritte durchgeführt werden, um die Netzwerk-Funktionalität wieder zu entfernen.
Nicht ganz einfach und vermutlich nicht alltäglich - daher eine kleine ToDo Liste um keinen Schritt zu vergessen und die Standard-Installation wieder her zustellen und in der bekanntesten Anwendung zu Bloggen oder das CMS zu nutzen.

  1. Sicherung aller Daten - Datenbank und Dateien via FTP o.ä.
  2. Setze die Konstante WP_ALLOW_MULTISITE auf FALSE oder lösche die Definition
  3. Entferne die zusätzlichen Zeilen in der wp-config.php; Auskommentieren reicht.
    
    /**
    define( 'MULTISITE', true );
    define( 'SUBDOMAIN_INSTALL', false );
    $base = '/wordpress/';
    define( 'DOMAIN_CURRENT_SITE', 'localhost' );
    define( 'PATH_CURRENT_SITE', '/wordpress/' );
    define( 'SITE_ID_CURRENT_SITE', 1 );
    define( 'BLOG_ID_CURRENT_SITE', 1 );
    */
    
  4. Entferne die Einträge für das Netzwerk aus der .htaccess im Root der Installation
    
    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /wordpress/
    RewriteRule ^index\.php$ - [L]
    
    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    # END WordPress
    
  5. Nun erstelle die Permalinks neu, füge die notwendigen Zeilen der .htaccess bei (wp-admin/options-permalink.php)
  6. Die Felder spam and deleted in der user-Tabelle entfernen (Präfix anpassen)
    
    ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;
    
  7. Folgende Tabellen in der Datenbank können entfernt werden (Präfix anpassen)
    • wp_blogs
    • wp_blog_versions
    • wp_registration_log
    • wp_signups
    • wp_site
    • wp_sitemeta
    • wp_sitecategories (Wenn globale Bedingungen aktiv waren)
      
      DROP TABLE 
          `wp_blogs`, 
          `wp_blog_versions`, 
          `wp_registration_log`, 
          `wp_signups`, 
          `wp_site`, 
          `wp_sitemeta`, 
          `wp_sitecategories`;
      
  8. Das eigentliche Blog ist nun wieder eine Standard-Installation. In der Datenbank sind nun noch die Tabellen der ehemals angelegten Blogs noch vorhanden. Hier gilt es zu prüfen, ob eventuell Inhalte übernommen werden müssen. Dazu sind eventuell diverse weitere Schritte notwendig, je nach Anforderung. Am besten geht das via SQL. Sollte auch hier alles unnötig sein, dann können die Tabellen entfernt werden.

Zum Abschluss nochmal der Hinweis: es sollte in jedem Fall mindestens eine Sicherung im Vorfeld angefertigt werden.

Kommentare sind geschlossen.