Penghurai menu bar navigasi menggunakan Bootstrap 5 dan WordPress
P粉106715703
P粉106715703 2024-01-16 11:00:48
0
1
413

Percubaan pertama saya untuk mengintegrasikan Bootstrap 5.2 ke dalam laman WordPress (ini hanyalah ujian tempatan). Saya melakukannya dengan wp-bootstrap-walker yang saya temui: https://github.com/wp-bootstrap/wp-bootstrap-navwalker/

Saya menambah fail "/class-wp-bootstrap-navwalker.php" yang disebut dalam panduan pemasangan ke functions.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' ),
        ) );

Untuk menggunakan versi 5, saya juga menukar ini:

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

Jadi tiada ralat ditunjukkan sehingga di sini, dan dalam bahagian belakang WordPress saya boleh memilih menu "Menu Tajuk Utama" yang ditakrifkan dalam functions.php, masalahnya ialah apabila saya memilih pilihan ini dan pergi ke halaman utama, maka semuanya ranap :

: 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

membalas semua(1)
P粉693126115

Saya menyelesaikannya dengan menulis ini:

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

Saya menulis init dan bukannya after_setup_theme untuk melaksanakan fungsi, dan menggunakan wp_loaded berfungsi dengan baik.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan