Ein modulares WordPress Plugin, das dynamisch Gutenberg Blöcke aus Ordnern registriert und verwaltet.
- Dynamische Block-Registrierung: Automatische Erkennung und Registrierung von Blöcken aus dem
/blocks/Verzeichnis - Modulare Architektur: Jeder Block lebt in seinem eigenen Ordner ohne Abhängigkeiten
- Admin-Interface: Einfache Verwaltung zum Aktivieren/Deaktivieren einzelner Blöcke
- PHP 8+ Kompatibel: Moderne PHP-Entwicklung mit aktuellen Standards
- WordPress 6.0+ Unterstützung: Nutzt die neuesten WordPress Block-APIs
- Plug-and-Play: Neue Blöcke einfach durch Hinzufügen von Ordnern installieren
modular-blocks-plugin/
├── modular-blocks-plugin.php # Haupt-Plugin-Datei
├── includes/
│ ├── class-block-manager.php # Block-Registrierung und -Verwaltung
│ └── class-admin-manager.php # Admin-Interface
├── admin/
│ ├── admin.css # Admin-Styles
│ └── admin.js # Admin-JavaScript
├── blocks/ # Block-Verzeichnis
│ └── demo-card/ # Beispiel-Block
│ ├── block.json # Block-Metadaten
│ ├── index.js # Block-Editor-Code
│ ├── render.php # Server-seitige Render-Funktion
│ ├── style.css # Frontend-Styles
│ └── editor.css # Editor-Styles
├── assets/
│ ├── css/ # Globale Styles
│ └── js/ # Globale Scripts
└── languages/ # Sprachdateien
- Laden Sie alle Plugin-Dateien in einen Ordner namens
modular-blocks-plugin - Erstellen Sie eine ZIP-Datei aus diesem Ordner
- Gehen Sie zu WordPress Admin → Plugins → Plugin hinzufügen
- Klicken Sie auf "Plugin hochladen" und wählen Sie die ZIP-Datei
- Aktivieren Sie das Plugin
- Laden Sie den Plugin-Ordner in
/wp-content/plugins/hoch - Aktivieren Sie das Plugin über die WordPress Admin-Oberfläche
- WordPress: 6.0 oder höher
- PHP: 8.0 oder höher
- Node.js: 16+ (für Block-Entwicklung)
- npm: 7+ (für Block-Entwicklung)
Nach der Aktivierung finden Sie die Plugin-Einstellungen unter: Einstellungen → Modulare Blöcke
Hier können Sie:
- Alle verfügbaren Blöcke anzeigen
- Einzelne Blöcke aktivieren/deaktivieren
- Block-Informationen einsehen
- Erstellen Sie einen neuen Ordner in
/blocks/ - Fügen Sie mindestens eine
block.jsonDatei hinzu - Der Block wird automatisch erkannt und im Admin-Interface angezeigt
blocks/mein-block/
└── block.json # Erforderlich: Block-Metadaten
blocks/mein-block/
├── block.json # Block-Metadaten
├── index.js # Editor-Code (optional)
├── render.php # Server-Rendering (für dynamische Blöcke)
├── style.css # Frontend-Styles (optional)
└── editor.css # Editor-Styles (optional)
{
\"apiVersion\": 3,
\"name\": \"modular-blocks/mein-block\",
\"title\": \"Mein Block\",
\"category\": \"design\",
\"icon\": \"star-filled\",
\"description\": \"Ein eigener Block.\",
\"attributes\": {
\"content\": {
\"type\": \"string\",
\"default\": \"Hallo Welt\"
}
}
}Für server-seitige Darstellung erstellen Sie eine render.php:
<?php
// Verfügbare Variablen:
// $block_attributes - Block-Attribute
// $block_content - Block-Inhalt
// $block_object - Block-Objekt
$content = $block_attributes['content'] ?? '';
?>
<div class=\"wp-block-modular-blocks-mein-block\">
<?php echo esc_html($content); ?>
</div>Das Plugin unterstützt moderne Block-Entwicklung. Für JavaScript-basierte Blöcke:
-
Installieren Sie
@wordpress/create-block:npm install -g @wordpress/create-block
-
Erstellen Sie einen neuen Block:
npx @wordpress/create-block mein-block --no-plugin
-
Verschieben Sie den generierten Ordner nach
/blocks/
Für Entwicklung mit modernen JavaScript-Features:
# Development
npm start
# Production Build
npm run buildDas Plugin enthält einen vollständigen Beispiel-Block "Demo Card":
- Lokation:
/blocks/demo-card/ - Features:
- Titel und Text-Editor
- Button mit URL
- Farbauswahl für Hintergrund und Text
- Responsive Design
- Server-seitiges Rendering
- Alle Eingaben werden sanitized
- CSRF-Schutz über WordPress Nonces
- Capability-Checks für Admin-Funktionen
- Sichere File-Uploads und -Zugriffe
Das Plugin ist übersetzungsbereit:
- Textdomain:
modular-blocks-plugin - Sprachdateien:
/languages/ - POT-Datei: Kann mit WP-CLI generiert werden
// In wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);Block wird nicht angezeigt:
- Prüfen Sie die
block.jsonauf Syntax-Fehler - Stellen Sie sicher, dass der Block im Admin aktiviert ist
- Überprüfen Sie die Browser-Konsole auf JavaScript-Fehler
PHP-Fehler in render.php:
- Prüfen Sie die Error-Logs in
/wp-content/debug.log - Stellen Sie sicher, dass alle Variablen definiert sind
GPL-2.0+ - Siehe WordPress Plugin-Richtlinien
Dieses Plugin kann von jedem für eigene Zwecke weiterentwickelt werden.
Für Support und Fragen:
- GitHub Issues erstellen
- WordPress Plugin-Support-Forum
- Entwickler-Community kontaktieren
Entwickelt mit ❤️ für die WordPress-Community