suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Parser für Navigationsleistenmenüs mit Bootstrap 5 und WordPress

Mein erster Versuch, Bootstrap 5.2 in eine WordPress-Site zu integrieren (dies ist nur ein lokaler Test). Ich mache es mit diesem wp-bootstrap-walker, den ich gefunden habe: https://github.com/wp-bootstrap/wp-bootstrap-navwalker/

Ich habe die im Installationshandbuch erwähnte Datei „/class-wp-bootstrap-navwalker.php“ zu „functions.php“ hinzugefügt:

function register_navwalker(){
            require_once get_template_directory() . '/class-wp-bootstrap-navwalker.php';
        }
        add_action( 'after_setup_theme', 'register_navwalker' ); 
        
        register_nav_menus( array(
            'primary' => __( 'Main header menu', 'mytheme' ),
        ) );

Um Version 5 nutzen zu können, habe ich auch Folgendes geändert:

'walker'          => new WP_Bootstrap_Navwalker(),
+    'walker'          => 'WP_Bootstrap_Navwalker',

Bis hierher werden also keine Fehler angezeigt, und im WordPress-Backend kann ich das in „functions.php“ definierte Menü „Haupttitelmenü“ auswählen. Das Problem ist, dass alles abstürzt, wenn ich diese Option auswähle und zur Startseite gehe :

: Uncaught Error: Call to a member function walk() on string in C:laragonwwwmydirectorywp-includesnav-menu-template.php:622 Stack trace: #0 C:laragonwwwmydirectorywp-includesnav-menu-template.php(242): walk_nav_menu_tree(Array, 2, Object(stdClass)) #1 C:laragonwwwmydirectorywp-contentthemesmy-themeheader.php(61): wp_nav_menu(Object(stdClass)) #2 C:laragonwwwmydirectorywp-includestemplate.php(783): require_once('C:\laragon\www\...') #3 C:laragonwwwmydirectorywp-includestemplate.php(718): load_template('C:\laragon\www\...', true, Array) #4 C:laragonwwwmydirectorywp-includesgeneral-template.php(48): locate_template(Array, true, true, Array) #5 C:laragonwwwmydirectorywp-contentthemesmy-themeindex.php(8): get_header() #6 C:laragonwwwmydirectorywp-includestemplate-loader.php(106): include('C:\laragon\www\...') #7 C:laragonwwwmydirectorywp-blog-header.php(19): require_once('C:\laragon\www\...') #8 C:laragonwwwmydirectoryindex.php(17): require('C:\laragon\www\...') #9 {main} thrown in


P粉106715703P粉106715703302 Tage vor407

Antworte allen(1)Ich werde antworten

  • P粉693126115

    P粉6931261152024-01-17 10:17:31

    我写这个解决了它:

    function register_navwalker(){
        require_once get_template_directory() . '/class-wp-bootstrap-navwalker.php';
    }
    add_action( 'init', 'register_navwalker' );

    我编写了 init 而不是 after_setup_theme 来执行该函数,并且使用 wp_loaded 效果很好。

    Antwort
    0
  • StornierenAntwort