簡體   English   中英

Bootstrap 5 和 wordpress navbar-walker

[英]Bootstrap 5 and wordpress navbar-walker

我第一次嘗試在 wordpress 站點中集成 Bootstrap 5.2(這只是一個本地測試)。 我正在通過我發現的這個 wp-bootstrap-walker 來做到這一點: https://github.com/wp-bootstrap/wp-bootstrap-navwalker/

我在“/class-wp-bootstrap-navwalker.php”文件中添加了它在函數安裝指南中所說的函數。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' ),
        ) );  

為了使用第 5 個版本,我也改變了這個:

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

所以直到這里沒有顯示錯誤,同樣在 WordPress 后端我可以 select 功能中定義的“主 header 菜單”菜單。php,問題是當我 select 這個選項和我 88306030 一切到 677488 主頁,崩潰:

: Uncaught Error: Call to a member function walk() on string in C:\laragon\www\mydirectory\wp-includes\nav-menu-template.php:622 Stack trace: #0 C:\laragon\www\mydirectory\wp-includes\nav-menu-template.php(242): walk_nav_menu_tree(Array, 2, Object(stdClass)) #1 C:\laragon\www\mydirectory\wp-content\themes\my-theme\header.php(61): wp_nav_menu(Object(stdClass)) #2 C:\laragon\www\mydirectory\wp-includes\template.php(783): require_once('C:\\laragon\\www\\...') #3 C:\laragon\www\mydirectory\wp-includes\template.php(718): load_template('C:\\laragon\\www\\...', true, Array) #4 C:\laragon\www\mydirectory\wp-includes\general-template.php(48): locate_template(Array, true, true, Array) #5 C:\laragon\www\mydirectory\wp-content\themes\my-theme\index.php(8): get_header() #6 C:\laragon\www\mydirectory\wp-includes\template-loader.php(106): include('C:\\laragon\\www\\...') #7 C:\laragon\www\mydirectory\wp-blog-header.php(19): require_once('C:\\laragon\\www\\...') #8 C:\laragon\www\mydirectory\index.php(17): require('C:\\laragon\\www\\...') #9 {main} thrown in

我解決它寫這個:

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

我寫了init而不是after_setup_theme來執行 function, wp_loaded也運行良好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM