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)

1 Reaktion zu »Block-Stile von WordPress-Core-Blöcken entfernen«

Erwähnungen

Schreibe einen Kommentar

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