WordPress: PHP-only Blöcke mit autoRegister
Seit WordPress 7.0 können individuelle Blöcke auf PHP-Basis und ohne JavaScript erstellt werden. Die Option »autoRegister« registriert Input-Felder und Einstellungen automatisch und macht einen aufwändigen Build-Prozess in vielen Fällen überflüssig.
Ab WordPress 7.0 lassen sich eigene Blöcke vollständig in PHP entwickeln. Bisher war dafür zwingend JavaScript notwendig. Mit der neuen Option autoRegister entfällt das. WordPress übernimmt die Editor-Integration automatisch.
Was ist »autoRegister«?
autoRegister ist eine neue Option im supports-Array, die mit WordPress 7.0 eingeführt wurde. Das supports-Array ist Bestandteil von register_block_type() und legt fest, welche Editor-Funktionen ein Block unterstützt, wie z.B. Farb- oder Abstandsoptionen. Ist autoRegister aktiv, registriert WordPress den Block selbstständig im Editor.
Block erstellen: Schritt für Schritt
Ein PHP-only Block kann folgendermaßen aufgebaut werden:
- Block-CSS mit
wp_register_style()registrieren - Block via
register_block_type()registrieren und Titel, Beschreibung, Kategorie, Attribute und Supports direkt als PHP-Array übergeben - Im
supports-ArrayautoRegisterauftruesetzen - Einen
render_callbackschreiben (eine PHP-Funktion, die das HTML des Blocks für das Frontend erzeugt) get_block_wrapper_attributes()verwenden (eine WordPress-Funktion, die alle notwendigen HTML-Attribute wie Klassen und Inline-Styles aus den Block Supports automatisch generiert)
In folgendem Beispiel erzeugen wir einen einfachen PHP-Block als Plugin. Der Block heißt »Info-Block« und gibt einen kurzen Text im Frontend aus. Über die Sidebar des Block-Editors lässt sich der Text bearbeiten sowie Schrift- und Hintergrundfarbe anpassen – alles ohne eine einzige Zeile JavaScript.
<?php
/*
Plugin Name: Info-Block (PHP-Only Block)
Description: Integration des PHP-Only Info-Blocks ab WordPress 7.0
*/
function kb_info_block_register_block() {
// Schritt 1: CSS registrieren
wp_register_style(
'kb-info-block-style',
plugin_dir_url( __FILE__ ) . 'style.css'
);
// Schritte 2 & 3: Block registrieren und autoRegister aktivieren
register_block_type( 'pluginname/info-block', [
'title' => 'Info-Block',
'category' => 'text',
'style' => 'kb-info-block-style',
'attributes' => [
'text' => [
'type' => 'string',
'label' => 'Text',
'default' => '',
],
],
'supports' => [
'autoRegister' => true,
'color' => [
'text' => true,
'background' => true,
],
],
'render_callback' => 'kb_info_block_render_block',
] );
}
add_action( 'init', 'kb_info_block_register_block' );
// Schritte 4 & 5: render_callback mit get_block_wrapper_attributes()
function kb_info_block_render_block( $attributes ) {
$wrapper = get_block_wrapper_attributes();
$text = esc_html( $attributes['text'] ?? '' );
return "<div {$wrapper}>{$text}</div>";
}Das Plugin besteht aus zwei Dateien: der PHP-Hauptdatei (z. B. info-block.php) mit der Block-Registrierung und einer style.css im selben Ordner für das Styling. Der Plugin-Ordner wird wie üblich unter wp-content/plugins/ abgelegt.

Einstellungen (Block Controls) für PHP-Blöcke festlegen
WordPress generiert automatisch die passenden Eingabefelder und Styling-Optionen in der rechten Seitenleiste, sobald bestimmte Attribute korrekt definiert sind. Eigene, JavaScript-basierte, Eingabefelder (Inspector Controls) lassen sich mit PHP-only Blöcken nicht umsetzen. Für viele Anwendungsfälle wird das auch nicht benötigt.
Input-Typen über Attribute steuern
Erhält ein Attribut einen label-Key, erzeugt WordPress daraus selbstständig ein passendes Eingabefeld in der Sidebar. Der Typ des Attributs bestimmt dabei, welches Control erscheint:
string→ Texteingabe (TextControl)integerodernumber→ Zahleneingabe (NumberControl)boolean→ Umschalter (ToggleControl)stringkombiniert mitenum→ Auswahlmenü (SelectControl)
Styling-Optionen mittels Block Supports steuern
Block Supports sind vordefinierte WordPress-Funktionen wie Farb-, Abstands- oder Typografie-Optionen. Sie lassen sich direkt im supports-Array aktivieren, wodurch WordPress die entsprechenden Sidebar-Panels automatisch rendert.

Wann sind PHP-only Blöcke sinnvoll?
PHP-only Blöcke eignen sich besonders für einfache Ausgabe-Blöcke ohne komplexe Interaktion im WordPress-Editor. Sobald ein Block aufwändige Editor-Interaktion benötigt, z.B. verschachtelte Blöcke Media-Uploads oder eine eigene Live-Vorschau, kommt man um JavaScript nicht herum. Für alle anderen Fälle ist der PHP-Block oft die schlankere und wartungsärmere Lösung.
PHP-Blöcke mit Claude Code entwickeln
Claude Code lässt sich durch Skills erweitern. Der folgende Skill php-block (nicht offiziell von WordPress) versorgt Claude mit den Konventionen des Projekts, sodass generierter Code den Standards entspricht. Eine Einführung in das Thema bietet dieses Video-Tutorial.