Block-Stile von WordPress-Core-Blöcken entfernen

Einige Core-Blöcke kommen mit zusätzlichen Block-Stilen daher, wie etwa der Zitat-Block, der neben dem Standard-Stil noch einen großen Stil hat. Wenn diese Core-Block-Stile nicht erwünscht sind, können sie seit WordPress 5.8 mit einem kleinen Code-Snippet entfernt werden.

In WordPress 5.8 wurde der block_type_metadata-Filter eingefügt, mit dem der Inhalt der block.json-Dateien gefiltert werden kann, bevor sie von WordPress verarbeitet wird. Alle Core-Blöcke nutzen je eine block.json zur Definition der Block-Metadaten, wozu auch Block-Stile gehören.

Für den Zitat-Block sieht der Inhalt der JSON-Datei auszugsweise so aus:

{
	"name": "core/quote",
	// […]
	"styles": [
		{
			"name": "default",
			"label": "Default",
			"isDefault": true
		},
		{ "name": "large", "label": "Large" }
	]
	// […]
}Code-Sprache: JSON / JSON mit Kommentaren (json)

In unserer Funktion, die wir an den block_type_metadata-Filter anhängen, brauchen wir dann nur zu prüfen, ob der Block-Bezeichner mit dem core/-Präfix anfängt und ob es styles gibt. Falls ja, entfernen wir die und haben damit alle Block-Stile von Core-Blöcken entfernt.

Der Code dafür sieht wie folgt aus:

/**
 * Remove all core block styles.
 * 
 * @param array $metadata Array of block.json metadata.
 * 
 * @return array Modified metadata.
 */
add_filter( 'block_type_metadata', function( $metadata ) {
    if ( strpos( $metadata['name'], 'core/' ) !== 0 ) {
        // No core block.
        return $metadata;
    }

    if ( empty( $metadata['styles'] ) ) {
        // No block styles.
        return $metadata;
    }

    unset( $metadata['styles'] );

    return $metadata;
} );Code-Sprache: PHP (php)

Erwähnungen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Falls du auf diesen Beitrag mit einem Artikel auf deiner eigenen Webseite geantwortet hast, kannst du hier die URL deines Beitrags eingeben. Dabei sollte es sich um die Permalink-URL handeln. Deine Antwort wird dann (möglicherweise nach der Moderation) auf dieser Seite angezeigt. Falls du deine Antwort aktualisieren oder entfernen möchtest, aktualisiere oder lösche deinen Beitrag auf deiner eigenen Webseite und gib die URL des Beitrags erneut ein. (Erfahre mehr über Webmentions.)