Zur Suche springen Zur Navigation springen Zum Hauptinhalt springen Zum Footer springen

Seit WordPress 5.0 ist der Gutenberg-Editor fester Bestandteil des WordPress-Cores und liefert eine Vielzahl an Blöcken, mit denen ihr  Inhalte darstellen bzw. strukturieren könnt. Häufig bieten einzelne Blöcke jedoch ungewünschte redaktionelle Freiheiten, weshalb sie deaktiviert werden sollen. Mit Hilfe einer sog. Whitelist könnt ihr nur bestimmte Gutenberg-Blöcke zulassen und mit einer Blacklist gezielt Blöcke entfernen.

Schulungen von kulturbanause

Intensive Trainings mit hohem Praxisbezug.

Gutenberg-Blöcke auf Whitelist setzen

Mit Hilfe einer Whitelist lässt sich ganz genau festlegen, welche Blöcke im Block Editor angezeigt werden sollen. Nur Blöcke die in der Whitelist vorhanden sind werden auch ausgespielt.

Um die Whitelist zu integrieren, verwenden wir den Filter »allowed_block_types«. Fügt hierfür einfach folgendes Snippet in eure functions.php oder in ein seitenspezifisches Plugin. Anschließend schreibt ihr alle Blöcke in das array(), die im Editor zur Auswahl stehen sollen. Eine Liste aller Standard-Gutenberg-Blöcke findet ihr am Ende dieses Beitrags.

function kb_whitelist_blocks() {
  return array(
    'core/heading',
    'core/paragraph',
    'core/image'
  );
}
add_filter('allowed_block_types','kb_whitelist_blocks');

Die Verwendung einer Whitelist ist empfehlenswert, wenn man genau steuern möchte, welche Blöcke zur Verfügung stehen sollen. Es werden auch Blöcke aus Plugins ignoriert, solange diese nicht explizit in die Liste aufgenommen sind.

Gutenberg-Blöcke auf Blacklist setzen

Wenn ihr nur einzelne Gutenberg-Blöcke ausschließen möchtet, bietet sich eine Blacklist an. Erstellt hierzu eine JavaScript-Datei und legt diese in eurem Theme-Verzeichnis ab. Kopiert anschließend den Inhalt des folgenden Code-Beispiels in diese Skript-Datei. Über wp.blocks.unregisterBlockType könnt ihr nun die einzelnen Blöcke auswählen, die ausgeschlossen werden sollen.

wp.domReady(function() {
    wp.blocks.unregisterBlockType( 'core/heading' );
    wp.blocks.unregisterBlockType( 'core/gallery' );
});

Nachdem ihr die JS-Datei in eurem Theme abgelegt habt, bindet sie mit Hilfe der Aktion enqueue_block_editor_assets ein. Achtet darauf, den Pfad zur JS-Datei anzupassen.

function kb_blacklist_blocks() {
  wp_enqueue_script(
    'kb_blacklist_blocks',
    get_template_directory_uri().'/assets/js/kb_blacklist_blocks.js',
    array('wp-blocks','wp-dom-ready','wp-edit-post')
  );
}
add_action('enqueue_block_editor_assets','kb_blacklist_blocks');

Gutenberg-Blöcke aus Plugins berücksichtigen

Viele Plugins erweitern WordPress um eigene Blöcke, die natürlich ebenfalls auf der Black- bzw. die Whitelist berücksichtigt werden müssen. Hierfür benötigt ihr den »Block-Slug« (meist bestehend aus Plugin-Name und Block-Name).

Im folgenden Beispiel fügen wir beispielsweise die beiden populären Yoast-Blöcke »FAQ« und »How-to« der Whitelist hinzu.

function kb_whitelist_blocks() {
  return array(
    'core/heading',
    'core/paragraph',
    'core/image',
    'yoast/faq-block',
    'yoast/how-to-block'
  );
}
add_filter('allowed_block_types','kb_whitelist_blocks');

Liste der aktuellen Standard-Gutenberg-Blöcke

Eine Liste aller Standard-Gutenberg-Blöcke findet ihr unter anderem hier: https://github.com/WordPress/gutenberg/tree/master/packages/block-library/src

Beachtet, dass Gutenberg zusätzlich als eigenständiges Plugin weiterentwickelt wird und dadurch Asynchronität zwischen der aktuellen WordPress- und der aktuellen Gutenberg-Version bestehen kann!

Geschrieben von Robert Menzel

thumb

Robert arbeitet als Frontend-Developer und Web-Designer bei kulturbanause®. Zu seinen Aufgaben gehören die Gestaltung und die technische Umsetzung von Websites mit Photoshop, Illustrator, WordPress, PHP, HTML, CSS (Sass) und JavaScript (jQuery). Besonders gerne übernimmt er die Erstellung individueller und anspruchsvoller WordPress-Themes mit umfangreichen ineinandergreifenden Funktionen.

Feedback & Ergänzungen – 1 Kommentar

  1. Daniel Geiser
    schrieb am 27.09.2021 um 13:45 Uhr:

    Hallo zusammen =)

    Dieser Beitrag müsste etwas überarbeitet werden, denn seit der Implementierung von Gutenberg im Widget-Screen funktioniert wp.blocks.unregisterBlockType() nicht mehr richtig, bzw. wird mit der dependency „wp-edit-post“ eine Fehlermeldung bei den Widgets verursachen: „wp-editor“ script should not be enqueued together with the new widgets editor (wp-edit-widgets or wp-customize-widgets).

    Entfernt man „wp-edit-post“ aus enqueue_block_editor_assets, ist die Fehlermeldung zwar weg, aber die deaktivierten Blöcke erscheinen wieder im Block-Inserter (und können auch verwendet werden). Interessanterweise funktionieren wp.blocks.registerBlockType() und wp.blocks.registerBlockStyle() immer noch wie bisher, auch ohne die genannte Abhängigkeit.

    Ich suche schon lange eine Lösung hierfür, denn das Bereitstellen einer Whitelist ist für mich keine Option. Leider reichen meine Programmier- und Englischkenntnisse schlichtweg nicht aus, um das Problem eigenhändig zu lösen. Ich hab’s auch mit Anfragen über das Gutenberg Projekt auf GitHub versucht, jedoch gehe ich aufgrund der Anzahl an noch offenen Punkten nicht davon aus, in nächster Zeit eine Antwort zu erhalten.

    Wenn man global nach Block Blackist oder ähnlichem sucht, kommt man leider immer wieder nur auf dieselbe Lösung, die auch in diesem Beitrag thematisiert wird..

    Vielleicht könnt Ihr mir ja weiterhelfen? ^^‘

    Antworten

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WordPress-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.

WordPress-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →