#PHP – Dynamische Widget-Bereiche in WordPress mit Shortcodes nutzen

WordPress bietet eine flexible Widget-Verwaltung, jedoch sind Widgets standardmäßig nur in den dafür vorgesehenen Bereichen wie der Seitenleiste oder dem Footer nutzbar. Mit der folgenden Funktion kannst du bis zu drei Widget-Bereiche registrieren, die anschließend über Shortcodes an beliebigen Stellen in Beiträgen, Seiten oder Templates genutzt werden können.

Wichtig: Wenn du Änderungen an WordPress-Kerndateien wie der functions.php vornimmst, solltest du dies ausschließlich in einem Child-Theme tun. Andernfalls gehen deine Anpassungen bei einem Theme-Update verloren.

1. Registrierung der Widget-Bereiche in der functions.php

Um drei dynamische Widget-Bereiche zu registrieren, fügst du diesen Code in die functions.php deines Child-Themes ein:

// Drei Widget-Bereiche registrieren
function benutzer_widget_bereiche() {
for ($i = 1; $i <= 3; $i++) {
register_sidebar(array(
'name' => 'Shortcode Widget ' . $i,
'id' => 'shortcode_widget_bereich_' . $i,
'before_widget' => '<div class="shortcode-widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
));
}
}
add_action('widgets_init', 'benutzer_widget_bereiche');

// Funktion zur Ausgabe der Widgets für den Shortcode
function benutzer_widget_shortcode($atts) {
$atts = shortcode_atts(array(
'id' => '1', // Standardmäßig erstes Widget
), $atts, 'widget_container');

$widget_id = 'shortcode_widget_bereich_' . intval($atts['id']);

ob_start();
dynamic_sidebar($widget_id);
return ob_get_clean();
}

// Drei Shortcodes für die drei Widget-Bereiche
add_shortcode('widget_container_1', function() { return benutzer_widget_shortcode(['id' => 1]); });
add_shortcode('widget_container_2', function() { return benutzer_widget_shortcode(['id' => 2]); });
add_shortcode('widget_container_3', function() { return benutzer_widget_shortcode(['id' => 3]); });

2. Verwendung der Shortcodes

Nachdem der obige Code in der functions.php eingefügt wurde, kannst du die Widget-Bereiche über Shortcodes überall dort nutzen, wo WordPress Shortcodes unterstützt:

  • [ widget_container_1 ] → Zeigt Widgets aus Shortcode Widget 1
  • [ widget_container_2 ] → Zeigt Widgets aus Shortcode Widget 2
  • [ widget_container_3 ] → Zeigt Widgets aus Shortcode Widget 3

3. Widgets in WordPress hinzufügen

Damit die Shortcodes Inhalte anzeigen, müssen Widgets in die neuen Widget-Bereiche eingefügt werden. Gehe dazu wie folgt vor:

  • Navigiere in WordPress zu Design → Widgets
  • Dort siehst du nun die neuen Bereiche:
    Shortcode Widget 1
    Shortcode Widget 2
    Shortcode Widget 3
  • Ziehe beliebige Widgets in diese Bereiche.
  • Speichern und die Shortcodes testen.

Fazit

Diese Methode ermöglicht es, bis zu drei separate Widget-Bereiche per Shortcode flexibel in Seiten oder Beiträgen zu platzieren. Dadurch kannst du dynamische Inhalte überall in deinem Theme darstellen, ohne von den festen Widget-Bereichen deines Themes abhängig zu sein.

Viel Spaß und Happy coding!

Nach oben