# WP Code Generator — Manual

> Vollständige Funktionsbeschreibung des WP Code Generators: alle Generatoren, die Snippet-Bibliothek, konfigurierbare Felder, Ausgabe-Mechanik und Grenzen.

Source: https://www.jpkc.com/db/tools/wp/manual/

Zurück zur Übersicht: [WP Code Generator](https://www.jpkc.com/db/tools/wp/) · Tool live öffnen: [www.jpkc.com/tools/wp/](https://www.jpkc.com/tools/wp/)

Dieses Manual beschreibt den **WP Code Generator** vollständig: wie die Oberfläche aufgebaut ist, wie die Generierung abläuft, was jeder einzelne Generator macht und welche Felder er anbietet, was die Snippet-Bibliothek enthält und wo die Grenzen liegen. Die Oberfläche des Tools ist auf Englisch — die Generator- und Feld-Bezeichnungen werden hier deshalb in ihrer englischen Original-Schreibweise genannt (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

## Aufbau und Bedienung

Das Tool ist zweigeteilt: links eine **Seitenleiste** mit allen Generatoren (in Gruppen gegliedert), rechts der **Arbeitsbereich** des gewählten Generators — ein Formular oben, der Ausgabe-Editor darunter. Du wählst einen Generator, füllst die Felder und liest den Code direkt im Editor ab.

### Live-Generierung

Sobald du ein Feld änderst, baut das Tool den Code **automatisch neu** (entkoppelt/„debounced" mit kurzer Verzögerung, damit es beim Tippen nicht ruckelt). Zusätzlich gibt es pro Generator eine **Generate**-Schaltfläche, die dasselbe manuell auslöst. Es gibt keinen Server-Roundtrip — die Neuberechnung passiert sofort im Browser.

### Mehrdatei-Ausgaben

Einige Generatoren erzeugen mehr als eine Datei. Sie zeigen die Ausgaben dann in **Datei-Reitern** über dem Editor:

- **Theme** → `style.css`, `functions.php` und (bei Block-Themes) `theme.json`.
- **Gutenberg Block** → `block.json` und `register.php`.

### Copy und Download

Jeder Ausgabe-Bereich hat zwei Schaltflächen: **Copy** legt den aktuellen Editor-Inhalt in die Zwischenablage, **Download** speichert ihn als Datei mit sinnvollem Namen (`plugin.php`, `theme.json`, `cpt.php`, `query.php` …). Bei Mehrdatei-Generatoren beziehen sich Copy/Download immer auf den aktiven Datei-Reiter. Wer den Code erst generieren muss, bekommt sonst einen Hinweis („Generate code first by switching to this tab").

### Code-Stil und Zielversion

Der erzeugte Code richtet sich an **WordPress 6.8+** und modernes PHP (Default „Requires PHP" ist `8.3`). Durchgängig verwendet werden `declare(strict_types=1)`, ein `defined('ABSPATH') || exit`-Schutz in eigenständigen Dateien, typisierte Funktionssignaturen, Arrow-Funktions-Callbacks und WordPress-konforme Hook-Registrierung. Der Code folgt damit den WordPress-Coding-Standards, ist aber bewusst ein **Gerüst** — die fachliche Logik fügst du selbst ein.

## Gruppe „Plugin & Theme"

### Plugin

Erzeugt den vollständigen **Plugin-Header** plus eine Haupt-Klasse. Felder: *Plugin Name*, *Namespace / Main Class*, *Text Domain*, *Version*, *Author*, *Author URI*, *Plugin URI*, *License* (GPL-2.0-or-later, GPL-3.0-or-later, MIT, Proprietary), *Requires WP* (Default `6.8`), *Requires PHP* (Default `8.3`), *Requires Plugins* (optional, WP 6.5+), *Tested up to*, *Stable tag*, *Network* (nur Multisite) und *Description*.

Komfort: Text-Domain und Namespace werden **automatisch aus dem Plugin-Namen abgeleitet**, während du tippst (Text-Domain als Slug, Namespace in PascalCase) — du kannst beide danach überschreiben. Die Text-Domain muss dem Plugin-Verzeichnisnamen entsprechen.

### Theme

Erzeugt `style.css` (mit Theme-Header) und `functions.php`. Felder: *Theme Name*, *Text Domain*, *Version*, *Author*, *Author URI*, *Theme URI*, *Requires WP*, *Parent Theme* (nur für Child-Themes — den Verzeichnisnamen des Eltern-Themes eintragen, sonst leer lassen) und *Description*.

Die Checkbox **Block Theme (Full Site Editing)** schaltet einen zusätzlichen `theme.json`-Reiter frei und blendet Optionen ein: eine **Farbpalette** (Primary, Secondary, Background, Foreground als Farbwähler), **Layout**-Maße (*Content Width*, *Wide Width*) und die Option, `templateParts` (Header & Footer) plus eine leere Custom-Vorlage einzuschließen. Bei Block-Themes übernimmt `functions.php` nur noch die Feature-Registrierung.

### Gutenberg Block

Erzeugt eine `block.json` und die PHP-Registrierung via `register_block_type()`. Felder: *Namespace* (Plugin-/Theme-Slug), *Block Name* (Slug), *Title*, *Category* (text, media, design, widgets, theme, embed), *Icon* (Dashicon-Slug), *Keywords*, *Description* und die *Supports* (align, color.text, color.background, typography.fontSize). Die Checkbox **Dynamic Block (server-side render)** blendet ein Feld für den **Render-Callback** ein; bei dynamischen Blocks gibt die JS-`save()`-Funktion `null` zurück und PHP rendert. Der Blockname hat das Format `namespace/block-name`, beide Teile kleingeschrieben.

### Nav Menus

Registriert **Menü-Positionen** (`register_nav_menus()`), damit ein Theme mehrere Menüstandorte (z. B. „Primary", „Footer") anbieten kann.

### `wp_nav_menu()`

Erzeugt den Aufruf zum **Ausgeben** eines Menüs. Konfigurierbar sind unter anderem Container (und damit Container-Klasse/-ID und ARIA-Label), ein optionales Fallback (eigene Funktion) und ein optionaler Walker.

### Sidebar / Widget Area

Registriert eine oder mehrere **Widget-Bereiche** (`register_sidebar()`) mit wählbarem Wrapper-Markup (Standard oder eigene HTML-Hülle).

## Gruppe „Hooks & Assets"

### Hook (Action / Filter)

Erzeugt eine Hook-Registrierung. Felder: *Type* (Action via `add_action` oder Filter via `add_filter`), *Hook Name* (mit Autovervollständigung aus einer Liste gängiger Core- und WooCommerce-Hooks), *Priority* (Default `10`, kleinere Zahl = frühere Ausführung), *Accepted Args* (1–10) und *Callback Function Name*. Wichtig: **Action**-Callbacks geben `void` zurück, **Filter**-Callbacks müssen den (geänderten) Wert `return`en, und *Accepted Args* muss zur Zahl der tatsächlich übergebenen Parameter passen.

### Cron Event

Erzeugt ein geplantes Ereignis über die WP-Cron-API. *Schedule* wählt das Intervall (Hourly, Twice Daily, Daily, Weekly oder Custom); bei *Custom Interval* legst du Wert und Einheit (Minutes/Hours) selbst fest.

### Asset Enqueue

Erzeugt das saubere Einbinden von CSS oder JavaScript. *Type* (CSS Stylesheet / JavaScript), *Hook* (`wp_enqueue_scripts`, `admin_enqueue_scripts`, `login_enqueue_scripts`) und *Version Strategy* (fester Versionsstring, `filemtime()` für automatisches Cache-Busting oder `false`). Bei JS gibt es die Footer-Option, bei CSS die Media-Angabe.

### Shortcode

Erzeugt die Registrierung eines Shortcodes (`add_shortcode()`) samt Callback-Gerüst mit Attribut-Handling.

### oEmbed Provider

Erzeugt die Registrierung eigener oEmbed-Provider (`wp_oembed_add_provider()`).

### WP-CLI Command

Erzeugt ein **WP-CLI-Kommando** mit Subcommands. Du definierst Kommando-Name und Subcommands; der Dateiname der Ausgabe richtet sich nach dem Kommando-Namen.

## Gruppe „Data Types"

### Custom Post Type

Erzeugt `register_post_type()` mit vollständigem Labels-Array, Supports, REST-Anbindung, Archiv- und Rewrite-Optionen sowie Icon.

### Taxonomy

Erzeugt `register_taxonomy()` — die zugehörige(n) Post-Type(s), Hierarchie (kategorie- oder tag-artig), Labels und REST-Anbindung.

### Post Status

Registriert einen **eigenen Post-Status** (`register_post_status()`).

### Post Meta Field

Registriert ein Post-Meta-Feld (`register_post_meta()`) mit Typ, Single/Multiple, REST-Sichtbarkeit sowie Auth- und Sanitize-Callback. Der **Sanitize-Callback** wird je nach Typ automatisch vorgeschlagen (`string` → `sanitize_text_field`, `integer` → `absint`, `number` → `floatval` …); beide Callbacks lassen sich auf „custom" stellen.

### Term Meta Field

Wie *Post Meta Field*, aber für Taxonomie-Begriffe (`register_term_meta()`) — mit derselben Typ-abhängigen Callback-Logik.

## Gruppe „Admin UI"

### Meta Box

Erzeugt eine **Meta-Box** (`add_meta_box()`) inklusive Render-Callback, Nonce-Prüfung und Speicher-Logik. Der Bildschirm (Screen) ist wählbar, inklusive „custom" für eigene Post-Types.

### Dashboard Widget

Erzeugt ein **Dashboard-Widget** (`wp_add_dashboard_widget()`) mit Render-Callback.

### Settings Page

Erzeugt eine **Einstellungsseite** über die Settings-API — als Top-Level-Menüpunkt oder Submenü (dann mit wählbarem Parent-Slug), inklusive Registrierung von Sektionen und Feldern.

### Admin Bar Nodes

Erzeugt das Hinzufügen oder Entfernen von **Knoten in der Admin-Bar** (`admin_bar_menu`).

### Contact Methods

Erzeugt das Anpassen der **Benutzerprofil-Kontaktfelder** (`user_contactmethods`) — Felder hinzufügen und Standardfelder entfernen.

## Gruppe „Config & Queries"

### WP-Config

Erzeugt Konstanten-Blöcke für die `wp-config.php` (z. B. Debug-, Sicherheits-, Performance- und Speicher-Konstanten) zum Hineinkopieren.

### Query Builder

Erzeugt eine WordPress-Datenbank-Abfrage. Über *Query Type* wählst du eine von **neun** Abfrage-Arten, und das Formular passt sich an: `WP_Query` (Beiträge), `get_users()`, `get_terms()`, `get_comments()`, `WP_Network_Query` und `WP_Site_Query` (beide Multisite) sowie die eigenständigen `WP_Tax_Query`, `WP_Meta_Query` und `WP_Date_Query`. Je nach Typ stehen passende Felder bereit (z. B. bei `WP_Query` Post-Type, Status, Posts-pro-Seite und Sortierung); ein Info-Kasten erläutert den jeweils gewählten Typ.

## Gruppe „Snippets": die Theme-Snippet-Bibliothek

Der Reiter **Theme Snippets** ist kein Formular-Generator, sondern eine **Bibliothek aus 30 fertigen `functions.php`-Snippets**. Du wählst im Dropdown *Snippet* einen Eintrag; darunter erscheint eine Kurzbeschreibung, optional ein kleines Optionen-Panel (manche Snippets haben Schalter) und ein Feld **Text Domain / Prefix**, mit dem die generierten Funktionsnamen einen eigenen Präfix bekommen. Der Code aktualisiert sich live; Copy/Download speichern ihn unter `<snippet-id>.php`.

Die 30 Snippets sind in fünf Kategorien (Original-Optgroup-Bezeichnungen) gegliedert:

- **Security & Cleanup** (14) — u. a. Generator-Meta-Tag entfernen, Emoji-Support entfernen, Dashicons im Frontend entfernen, XML-RPC abschalten, Versions-Query-Strings entfernen, Argon2ID-Passwörter aktivieren, Kommentare global deaktivieren, Login-Fehlermeldungen verbergen, Benutzer-Enumeration verhindern, REST-`users`-Endpoint verbergen, Datei-Editor abschalten, Security-Header setzen, öffentliche REST-API einschränken.
- **Content & Output** (5) — Excerpt-Länge und „Read more"-Text anpassen, Block-Editor-CSS im Frontend entfernen, eigene Bildgröße registrieren, fehlende Alt-Texte aus Gutenberg-Bildern ableiten.
- **Admin & Customisation** (3) — Skripte `defer`/`async` ausliefern, eigenes Login-Logo, eigener Admin-Footer-Text.
- **Branding** (5) — eigener E-Mail-Absender, WP-Logo aus der Admin-Bar entfernen, White-Label-Admin, Dashboard-Widgets entfernen, eigenes Dashboard-Widget.
- **Misc & SEO** (3) — Attachment-Seiten umleiten, Post-Revisionen begrenzen, RSS-Feeds deaktivieren.

> Hinweis zur Zählung: Die Marketing-Zeile nennt „31 snippets" — im Tool sind es exakt **30** auswählbare Snippets. Wenn du auf eine andere Zahl kommst, kann das an späteren Erweiterungen der Bibliothek liegen.

## Gruppe „Reference": Dashicons

Der **Dashicons**-Browser zeigt die 349 WordPress-Admin-Icons. Per Klick auf ein Icon kopierst du seinen Slug — praktisch, um etwa das `menu_icon` eines Custom Post Types oder das Icon eines Gutenberg-Blocks zu setzen. Dies ist eine Referenz, kein Code-Generator.

## Architektur und Grenzen

- **Rein clientseitig.** Sämtliche Code-Templates und die Generierungs-Logik stecken im JavaScript des Tools und laufen vollständig im Browser. Es gibt keinen Server-Roundtrip, keine Datenübertragung und keine serverseitige Verarbeitung deiner Eingaben.
- **Gerüst, kein fertiges Plugin.** Der Code ist syntaktisch korrekt und konventionskonform, enthält aber bewusst Platzhalter und leere Callback-Rümpfe. Die fachliche Logik schreibst du selbst.
- **Keine Validierung deiner Eingaben gegen WordPress.** Das Tool weiß nicht, ob ein Hook-Name existiert oder ein Slug schon belegt ist — es formt deine Eingaben in Code, prüft sie aber nicht gegen eine laufende Installation.
- **Editor-Ausgabe.** Die Anzeige nutzt den ACE-Editor; du arbeitest mit Copy/Download, nicht mit einem Datei-Export-Paket.
- **Kein KI-Anteil.** Der Generator arbeitet rein template-basiert und deterministisch — es gibt keine KI-Komponente.

Für den Einstieg und die Zielgruppen siehe die [Übersichtsseite](https://www.jpkc.com/db/tools/wp/). Konkrete Abläufe zeigen die [Beispiele](https://www.jpkc.com/db/tools/wp/examples/), Strategie und Stolperfallen die [Tipps & Tricks](https://www.jpkc.com/db/tools/wp/tips/). Ausprobieren kannst du alles direkt im [Tool](https://www.jpkc.com/tools/wp/).

