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
Je l'ai résolu en écrivant ceci :
J'ai écrit init au lieu de after_setup_theme pour exécuter la fonction, et l'utilisation de wp_loaded a bien fonctionné.