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