Bootstrap 5 Navigation in WordPress Block-Theme integrieren (ohne Plugin)

Diese Anleitung zeigt, wie du in einem modernen WordPress Block-Theme (z. B. Twenty Twenty-Four) ein eigenes responsives Menü mit Bootstrap 5 erstellst und im Frontend einbindest – ohne den Full-Site-Editor (FSE) zu nutzen und ohne Plugin.

Voraussetzungen

  • Ein aktives WordPress Block-Theme (z. B. TT4)
  • Bootstrap 5 soll eingebunden sein
  • Zugriff auf den Theme-Ordner (per FTP oder lokal)

1. Menüposition registrieren

In die Datei functions.php im Child-Theme einfügen:


function mytheme_register_menus() {
    register_nav_menu('main-menu', 'Hauptmenü');
}
add_action('after_setup_theme', 'mytheme_register_menus');

Danach kann im Backend unter Design > Menüs das Hauptmenü erstellt und dieser Position zugewiesen werden.

2. Bootstrap Navwalker einbinden

Die Datei class-bootstrap-navwalker.php von GitHub herunterladen: 👉 https://github.com/wp-bootstrap/wp-bootstrap-navwalker

Speichern unter:


/wp-content/themes/dein-child-theme/parts/class-bootstrap-navwalker.php

Dann in functions.php einfügen:


require_once get_template_directory() . '/parts/class-bootstrap-navwalker.php';

3. Bootstrap-Navbar als Template-Part erstellen


/wp-content/themes/dein-child-theme/parts/php/bootstrap-nav.php

Inhalt:

<nav class="navbar navbar-expand-md navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="<?php echo esc_url(home_url('/')); ?>">
      <?php bloginfo('name'); ?>
    </a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#main-menu" aria-controls="main-menu" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="main-menu">
      <?php
      wp_nav_menu(array(
        'theme_location'  => 'main-menu',
        'depth'           => 2,
        'container'       => false,
        'menu_class'      => 'navbar-nav me-auto mb-2 mb-md-0',
        'fallback_cb'     => '__return_false',
        'walker'          => new bootstrap_5_wp_nav_menu_walker()
      ));
      ?>
    </div>
  </div>
</nav>

4. Navbar einbinden mit wp_body_open

Damit die Navbar unabhängig vom Block-Editor geladen wird, folgenden Code in die functions.php einfügen:


function theme_add_bootstrap_navbar() {
    get_template_part('parts/php/bootstrap-nav');
}
add_action('wp_body_open', 'theme_add_bootstrap_navbar');

Dadurch wird das Menü ganz oben im <body>-Bereich angezeigt.

5. Bootstrap einbinden (falls nicht vorhanden)

Falls dein Theme Bootstrap nicht lädt, kannst du es z. B. so in functions.php hinzufügen:


function enqueue_bootstrap_assets() {
    wp_enqueue_style('bootstrap-css', 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css');
    wp_enqueue_script('bootstrap-js', 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js', array(), null, true);
}
add_action('wp_enqueue_scripts', 'enqueue_bootstrap_assets');

6. CSS anpassen

Du kannst die Darstellung des Menüs einfach über CSS beeinflussen. Erstelle z. B. eine Datei style.css im Child-Theme oder verwende den Customizer unter Design > Customizer > Zusätzliches CSS.

Beispiel:


/* Haupt-Navigationsleiste */
.navbar {
    background-color: #f8f9fa;
    border-bottom: 2px solid #ccc;
}

/* Menülinks */
.navbar-nav .nav-link {
    color: #333;
    padding: 10px 15px;
    transition: color 0.3s ease;
}

/* Hover-Effekt */
.navbar-nav .nav-link:hover {
    color: #007bff;
}

/* Dropdown-Menü sofort beim Hover anzeigen */
@media (min-width: 768px) {
    .navbar-nav li:hover > .dropdown-menu {
        display: block;
        margin-top: 0;
    }

    .dropdown-menu {
        border: none;
        background-color: #f0f0f0;
    }
}

/* Menü nur auf Desktop anzeigen */
.desktop-menu-only {
    display: none;
}

@media (min-width: 768px) {
    .desktop-menu-only {
        display: block;
    }
}

Diese Regeln sorgen dafür, dass:

  • das Menü modern aussieht
  • Untermenüs sofort beim Hover angezeigt werden
  • das Menü nur auf Desktop sichtbar ist (nicht mobil)

Hinweise

  • Das Menü ist nicht im Site-Editor sichtbar, weil es per PHP eingebunden ist
  • Die Bearbeitung erfolgt klassisch über Design > Menüs
  • Im Frontend ist das Menü vollständig responsive mit Bootstrap-Funktionalität

Ergebnis

Ein flexibles, vollständig anpassbares und modernes Navigationsmenü mit Bootstrap 5, das mit klassischen WordPress-Funktionen kombiniert wird – ohne Plugin, ohne auf den Full-Site-Editor angewiesen zu sein.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *