How to Disable Gutenberg

Gutenberg [1] wurde dem WordPress-Core [2] in der Version 5.0 mit Release-Datum  06. Dezember 2018 hinzugefügt. Das sind großartige Neuigkeiten für einige, nicht so großartig aber für viele andere.

99,9+% aller WordPress-Sites (das ist meine persönliche Einschätzung), die derzeit online sind, funktionieren ohne Gutenberg. Die massiven Änderungen die sich bei der Erstellung von Beiträgen und Einzel-Seiten durch die Implementierung durch Gutenberg ergeben, werden Millionen Websites betreffen, deren Funktionalität verändern oder sogar stark beeinträchtigen.

In diesem Beitrag zähle ich einige Möglichkeiten zum Deaktivieren von Gutenberg auf, einschließlich des Deaktivierens von Gutenberg durch ein Plugin.

Gutenberg komplett deaktivieren

Wie von WordPress erwartet ändert sich Gutenberg ständig. Zur aktuellen Release sieht der Code, der zum Deaktivieren von Gutenberg erforderlich ist, folgendermaßen aus:

add_filter('use_block_editor_for_post', '__return_false');

Dies funktioniert für Gutenberg 4.1 oder höher und für WordPress 5.0 Beta. Für ältere Versionen sieht der Code folgend aus:

add_filter('gutenberg_can_edit_post_type', '__return_false');

Die zweite Deaktivierungsmethode funktioniert mit Gutenberg Version kleiner 4.1 sowie mit WordPress-Versionen kleiner 5.0 beta.

In Abhängigkeit der Version von WP / G7G wird eine der oben genannten Methoden empfohlen, um Gutenberg zu deaktivieren. Grundsätzlich wird der Wert false an den entsprechenden Hook zurückgegeben. Kritiker von Gutenberg befürchten, dass WP diesen Hoock nachträglich ändert und die beschriebenen Funktionen nutzlos werden. Spätestens dann wäre ein weiterer Eingriff in den Code angesagt.

Durch das Einfügen des nachfolgenden Codes in die function.php des Child-Themes wird Gutenberg vollständig deaktiviert. Dies gilt für alle Post-Typen. Bei der Verwendung von WP Theme C ist dies unumgänglich!

/**
 * Description: Disable Gutenberg Completely
 * Version:     1.0.0
 * Author:      A.Kra.
 * Author URI:  https://wdns.at
 * License:     MIT
 * License URI: https://opensource.org/licenses/MIT
 */
if ( version_compare( $GLOBALS['wp_version'], '5.0-beta', '>' ) ) {
    // WP > 5 beta
    add_filter('use_block_editor_for_post_type', '__return_false', 100);
}
else {
    // WP < 5 beta
    add_filter('gutenberg_can_edit_post_type', '__return_false');
}

Ergänzung (03.01.2019)

Auch wenn Gutenberg, wie oben beschrieben, vollständig deaktiviert ist, werden entsprechende Styles (CSS) geladen. Dies ist unsinnig und überflüssig. Folgender Hook bereinigt die Sache:

/**
 * Description: Dequeue Gutenberg Styles
 *
 * It looks like the Block editor’s assets are still enqueued on the front
 * end even when disabling the Gutenberg editor!
 */
add_action( 'wp_print_styles', function() {
    wp_dequeue_style( 'wp-block-library' );
    wp_deregister_style( 'wp-block-library' );
}, 100 );

Gutenberg selektiv deaktivieren (Custom Post Types)

Um Gutenberg nur für bestimmte Beitragstypen (Post-Types) zu deaktivieren, existieren folgende Optionen:

Gutenberg 4.1 oder höher und für WordPress 5.0 Beta oder höher

function wdns_disable_gutenberg($is_enabled, $post_type) {
    if ($post_type === '<cpt-slug>') return false; // change <cpt-slug> to your post type 
    return $is_enabled;
}
add_filter('use_block_editor_for_post_type', 'wdns_disable_gutenberg', 10, 2);

Gutenberg kleiner 4.1 und WordPress kleiner 5.0 beta

function wdns_disable_gutenberg($is_enabled, $post_type) {
    if ($post_type === 'book') return false; // change book to your post type
    return $is_enabled;
}
add_filter('gutenberg_can_edit_post_type', 'wdns_disable_gutenberg', 10, 2);

Die oben beschriebenen Codeschnipsel unterscheiden sich ausschließlich durch die Verwendung des aufgerufenen Hooks des Filters.

Weitere Möglichkeiten der Deaktivierung

...folgen.

 

Disclaimer

Die Gutenberg-Technologie verändert sich laufend. Testen Sie daher unbedingt die oben beschriebenen Code-Beispiele immer mit der neuesten Version von WP / G7G, bevor Sie diese in eine Produktiv-Seite implementieren. Jeff Starr [3] hat ein spezielles Disable Gutenberg-Plugin [4] entwickelt, das auf aktuellen Stand gehalten wird und mit der neuesten G7G-Funktionalität kompatibel ist.

 

Quellenverzeichnis:
[1] https://de.wordpress.org/gutenberg/
[2] https://make.wordpress.org/core/5-0/
[3] https://monzillamedia.com/
[4] https://wordpress.org/plugins/disable-gutenberg/