Kirby mit WordPress Vorwissen

WordPressKirby
WP_Query$page->children(), site()->index(), filterBy()
Custom Post TypesEigene Seitenstruktur + Templates + Blueprints
the_field(), get_field() (ACF)$page->yourField()
ACF RepeaterStructure Field → $page->yourField()->toStructure()
functions.phpsite/plugins/ oder config.php oder eigene Helper-Funktionen
add_theme_support()Nicht nötig, da keine Themes – alles ist dein Code
get_template_part()snippet(’name‘) oder eigene PHP-Includes
wp_enqueue_script()vite, esbuild, manuell im head.php oder footer.php
is_front_page()$page->isHomePage()
get_permalink()$page->url()
get_the_title()$page->title()
Custom Fields im BackendÜber Blueprints (site/blueprints/…) definieren
Gutenberg / Page BuilderKein Builder – du baust exakt das, was du brauchst
admin_init, Hooks, Actions, FiltersHooks mit Plugins oder kirby->hook()
REST APIKirby bietet eine native API, oder du baust deine eigene mit PHP

Strukturierte Felder (ACF Repeater)

YAML
fields:
  items:
    type: structure
    fields:
      title: { type: text }
      image: { type: files }
PHP
<?php foreach ($page->items()->toStructure() as $item): ?>
  <h3><?= $item->title() ?></h3>
  <img src="<?= $item->image()->toFile()->url() ?>" />
<?php endforeach ?>

Query Beispiele

Alle Unterseiten

PHP
$page->children()->listed()

Alle Seiten im ganzen Projekt (wie WP_Query über CPTs)

PHP
site()->index()->filterBy('template', 'blog')

Seiten nach Datum sortieren

PHP
$page->children()->listed()->sortBy('date', 'desc')

Nur bestimmte Kategorie (z. B. Feld „category“)

PHP
$page->children()->filterBy('category', 'design')

Snippets statt get_template_part()

PHP
// Snippet einbinden
<?= snippet('header') ?>
PHP
// Datei: site/snippets/header.php
<header>
  <h1><?= $site->title() ?></h1>
</header>

Dateistruktur (vereinfacht)

CSS
site/
  blueprints/      ← Felder und Admin-UI
  templates/       ← PHP-Templates für Seiten
  snippets/        ← Wiederverwendbare PHP-Teile
  plugins/         ← Eigene Funktionen, Erweiterungen
content/
  blog/
    erster-artikel/
      article.txt  ← Felder als Textdatei

Entwicklung

  • Du kannst npm, Vite, Tailwind, Alpine.js, Splide etc. direkt integrieren.
  • Kein Build-Prozess vorgegeben – volle Freiheit.
  • Kein Composer-Zwang, aber möglich.

Vorteile für WP-Dev

  • Keine Datenbank, keine Updateschlacht
  • Extrem performant, da flat file
  • Admin-Panel via Panel UI, stark anpassbar
  • Saubere Trennung von Code und Content
  • Vollständige Kontrolle über alles