Search code examples
twitter-bootstraptwitter-bootstrap-3wordpress-themingtogglebutton

bootstrap navbar toggle button is not working


I'm working on a responsive wordpress theme with Bootstrap v3.0.2.

In mobile/tablet browsers instead of the whole menu i need to show the Bootstrap toggle button. My button is showing, but when I click on it nothing is happening. This is code I wrote in my header.php :

<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
</button>

And the one I wrote in function.php :

function wpt_register_js() {
    wp_register_script(
        'jquery.bootstrap.min', 
        get_template_directory_uri() . '/js/bootstrap.min.js', 
        'jquery'
    );
    wp_enqueue_script('jquery.bootstrap.min');
}
add_action( 'init', 'wpt_register_js' );

function wpt_register_css() {
    wp_register_style(
        'bootstrap.min', 
        get_template_directory_uri() . '/css/bootstrap.min.css'
    );
    wp_enqueue_style( 'bootstrap.min' );
}
add_action( 'wp_enqueue_scripts', 'wpt_register_css' );

the footer.php code contains:

<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
 <script src="js/bootstrap.min.js"></script>
  <?php wp_footer();?>
   </body>

the header.php contains:

<head>
<meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title><?php wp_title('|', true, 'right'); ?></title>
   <link href="<?php echo get_template_directory_uri(); ?>/css/bootstrap.min.css"   rel="stylesheet" type="text/css">

   <link href="<?php echo get_template_directory_uri(); ?>/css/style.css" rel="stylesheet" type="text/css">
   <?php wp_head(); ?> 

    </head>

this question is resolved by using the answer of Bass Jobsen.thanks friend


Solution

  • Please read http://getbootstrap.com/components/#navbar first. Your navbar requires javascript:

    If JavaScript is disabled and the viewport is narrow enough that the navbar collapses, it will be impossible to expand the navbar and view the content within the .navbar-collapse.

    Make sure you include bootstrap.js in your document. You forgot to upload this maybe?

    update based on new information in your question:

    enqueue all your javascripts and css in functions.php and remove them from your header.php and footer.php

    javascript:

    function skematik_jquery_js(){
        wp_enqueue_script('jquery');
    }
    
    function wpt_register_js() {
        wp_register_script(
            'jquery.bootstrap.min', 
            get_template_directory_uri() . '/js/bootstrap.min.js', 
            'jquery'
        );
        wp_enqueue_script('jquery.bootstrap.min');
    }
    
    /* Load Scripts */
    add_action( 'wp_enqueue_scripts', 'skematik_jquery_js' );
    add_action( 'wp_enqueue_scripts', 'wpt_register_js' );
    

    css:

    function wpt_register_css() {
        wp_register_style(
            'bootstrap.min', 
            get_template_directory_uri() . '/css/bootstrap.min.css'
        );
        wp_enqueue_style( 'bootstrap.min' );
    }
    add_action( 'wp_enqueue_scripts', 'wpt_register_css' );