Slider¶
Überblick¶
Das Add‑on Slider ermöglicht die Verwaltung von Slides im Backend und die Ausgabe per Shortcode im Theme. Zusätzlich können reine Bild‑Slider direkt über eine Bildliste erstellt werden.
Slider im Backend anlegen¶
- Backend → Slides → Neu hinzufügen
- Titel vergeben (zur internen Zuordnung)
- Unter Slides das HTML‑Template definieren
- In Fields die gewünschten Felder pro Slide festlegen
- Im Bereich Slides Einträge hinzufügen und befüllen
Shortcode im Backend:
Im Slider‑Editor wird der Shortcode angezeigt, z. B. [slider id="123" title="Mein Slider"].
Ausgabe im Content¶
Content‑Slider (mit Slides aus dem Backend)¶
[slider id="123"]
Optional kannst du zusätzliche Parameter setzen:
class– CSS‑Klasse für den Wrapperratio– Bootstrap‑Ratio (z. B.16x9)lazy– Lazy‑Load viatwtheme_dynamic_content(true/false)fullscreen– Vollbild‑Trigger (nur Desktop)
Beispiel: Slider mit dynamischen Inhalten aus einem Post Type¶
Im Slider‑Backend legst du eigene Fields an (z. B. headline, text, image) und nutzt sie im Template:
<article class="slide">
<h3>%%headline%%</h3>
<p>%%text%%</p>
<div class="media">%%image|image%%</div>
</article>
Im Theme baust du den Slider und befüllst die Slides über Daten aus einem Post Type (hier: news):
// 1) Slider-Post laden (enthält Template + Felddefinitionen)
$slider_id = 123;
// 2) Inhalte aus einem Post Type holen
$items = get_posts([
'post_type' => 'news',
'posts_per_page' => 6,
'post_status' => 'publish',
]);
// 3) Slides-Array im erwarteten Format bauen
$dynamic_slides = [];
foreach ($items as $item) {
$dynamic_slides[] = [
'slide-is-active' => 'on',
'headline' => get_the_title($item),
'text' => get_the_excerpt($item),
'image' => get_post_thumbnail_id($item), // wird via %%image|image%% gerendert
];
}
// 4) Slider-Shortcode mit dynamischen Slides ausgeben
echo do_shortcode('[slider id="' . $slider_id . '"]');
// Hinweis: Slides werden über den Filter unten eingespeist.
Ergänze in der functions.php den Filter, der die dynamischen Slides an den Slider übergibt:
add_filter('twtheme_slider_slides', function ($slides, $atts, $slides_data) use ($dynamic_slides) {
return $dynamic_slides; // vorhandene Slides überschreiben
}, 10, 3);
So wird der Slider mit Inhalten aus deinem Post Type befüllt, ohne dass du die Slides im Backend manuell anlegen musst.
Bild‑Slider (direkt aus IDs)¶
[slider images="12,34,56" thumbnails="true" caption="true"]
Weitere Optionen:
image_size(z. B.large,medium)image_srcset(true/false)style(fitfür object‑fit‑cover)
Slider‑Einstellungen (Splide)¶
Im Tab Splide Settings kannst du:
- Splide Options als JSON hinterlegen
- Arrows HTML überschreiben
- Additional JS hinzufügen (Slider‑ID wird im Backend angezeigt)
Feldtypen im Slider¶
Im Bereich Fields kannst du pro Slide folgende Feldtypen anlegen:
- Text – Einzeiliger Inhalt (z. B. Überschrift).
- Textarea – Mehrzeiliger Inhalt (z. B. Teaser).
- Zahl – Numerischer Wert (z. B. Preis, Sortierung).
- Bild – Bild aus der Mediathek.
- Template – HTML‑Override pro Slide (ersetzt das globale Template).
- Editor – WYSIWYG‑Inhalt (formatierter Text).
Barrierefreiheit¶
Unter Designations lassen sich ARIA‑Texte für Buttons, Pagination und Slides anpassen.
Anwendung im Frontend¶
Slider werden per Shortcode ausgegeben und als Splide‑Slider gerendert (Content‑ oder Bild‑Slider).
Entwicklertipps¶
- Slides sind ein eigener Post Type:
slider - Shortcode kann auch eine Gallery ersetzen (WP‑Gallery wird auf
[slider]umgebogen)
Twtheme Hooks & Filter¶
| Hook/Filter | Typ | Parameter | Zweck |
|---|---|---|---|
twtheme_slider_fields |
Filter | ($fields) |
Felder im Slider‑CPT erweitern. |
twtheme_slider_slides |
Filter | ($slides, $atts, $slides_data) |
Slide‑Daten vor dem Rendern anpassen. |
twtheme_slider_splide_slides |
Filter | ($html, $slides, $template, $atts) |
HTML der Splide‑Slides anpassen. |