Analyseur de menu de la barre de navigation utilisant Bootstrap 5 et WordPress
P粉106715703
P粉106715703 2024-01-16 11:00:48
0
1
416

Ma première tentative d'intégration de Bootstrap 5.2 dans un site WordPress (ce n'est qu'un test local). Je le fais avec ce wp-bootstrap-walker que j'ai trouvé : https://github.com/wp-bootstrap/wp-bootstrap-navwalker/

J'ai ajouté le fichier "/class-wp-bootstrap-navwalker.php" mentionné dans le guide d'installation à function.php :

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' ),
        ) );

Afin d'utiliser la version 5, j'ai également modifié ceci :

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

Donc aucune erreur n'est affichée jusqu'ici, et dans le backend WordPress, je peux sélectionner le menu "Main Title Menu" défini dans function.php, le problème est que lorsque je sélectionne cette option et que je vais à la page d'accueil, alors tout plante :

: 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粉106715703
P粉106715703

répondre à tous(1)
P粉693126115

Je l'ai résolu en écrivant ceci :

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

J'ai écrit init au lieu de after_setup_theme pour exécuter la fonction, et l'utilisation de wp_loaded a bien fonctionné.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal