In WordPress 7.0 und neuer, kannst du ein Eingabefeld für zusätzliches CSS pro Block verwenden, um genau das zu tun: zusätzliches CSS für einen einzelnen Block hinzufügen. Und es gibt aktuell keinen einfachen weg, es zu deaktivieren. Deshalb zeige ich dir nachfolgend, wie das geht, auch wenn es relativ versteckt im „Erweitert“-Panel eines jeden Blocks ist.

Für das Deaktivieren dieses Eingabefeldes gibt es zwei Möglichkeiten. Eine via PHP und eine via JavaScript. Beide setzen explizit die Unterstützung für customCSS auf false, um WordPress zu sagen, dass zusätzliches CSS bei diesen Blöcken nicht unterstützt wird.

PHP

/**
 * Disable custom CSS in single blocks.
 * 
 * @param	array{supports: array{supports: array{customCSS?: bool}}}	$metadata Current metadata
 * @return	array{supports: array{supports: array{customCSS?: bool}}} Updated metadata
 */
function disable_block_custom_css( array $metadata ): array {
	$metadata['supports']['customCSS'] = false;
	
	return $metadata;
}

\add_filter( 'block_type_metadata', 'disable_block_custom_css' );
Code-Sprache: PHP (php)

JavaScript

wp.hooks.addFilter(
    'blocks.registerBlockType',
    'epiphyt/disable-custom-css',
    disableCustomCSS
);

function disableCustomCSS( settings, name ) {
	if ( ! settings.supports ) {
		settings.supports = {};
	}
	
	settings.supports.customCSS = false;
	
	return settings;
}Code-Sprache: JavaScript (javascript)

Du kannst außerdem $metadata['name'] in PHP bzw. settings.name in JavaScript prüfen, um das Eingabefeld für zusätzliches CSS nur für spezifische Block-Typen zu deaktivieren.

2 Kommentare

  1. Meines Erachtens gibt es dieses zusätzliche CSS schon lange, also längst vor der Version 7. Ich nutze allerdings GeneratePress und GenerateBlocks. Keine Ahnung, ob diese Möglichkeit also dadurch schon länger besteht. Was ich nicht verstehe, ist, weshalb man auf diese Möglichkeit verzichten sollte. Ich nutze es häufig z.B. für Boxen u.s.w. Habe ich da etwas falsch verstanden?

    1. Es gibt eine Vielzahl an Gründen, wieso man das nicht haben möchte. Nur ein Beispiel: Ich erstelle eine Website für einen Kunden, der sich im Design nicht auskennt. Sämtliche Design-Anpassungen passieren durch mich. Ergo soll er auch gar nicht die Möglichkeit haben, dort etwas ändern zu können, weshalb ich sämtliche entsprechenden Bedienelemente ausblende – darunter auch das neu hinzugekommene Feld für zusätzliches CSS.

Neuveröffentlichungen

Likes

Schreibe einen Kommentar

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

Um auf deiner eigenen Website zu antworten, gib die URL deiner Antwort ein, die einen Link zur Permalink-URL dieses Beitrags enthalten sollte. Deine Antwort wird dann (möglicherweise nach der Moderation) auf dieser Seite erscheinen. Möchtest du deine Antwort aktualisieren oder entfernen? Aktualisiere oder lösche deinen Beitrag und gib die URL deines Beitrags noch einmal ein. (Mehr über die Funktion von Webmentions erfahren)