2017-01-16 3 views
0

Я могу поместить bootstrap.min.js с зависимостью от встроенного jQuery Wordpress, но JQuery 1.11.1 не отображается в исходном коде, а Font Awesome также не работает правильноwp_enqueue_script - Дополнительный JQuery не отображается в исходном коде

Я пробовал код от других вопросов в StackOverflow, но я до сих пор не могу решить мой вопрос

я поставил некоторые комментарии в коде ниже:

Обновлено кОДЕКС

function enqueue_jquery() { 
    // deregister jquery ok 
    wp_deregister_script('jquery'); // unregister the WP-provided jQuery version 

    // tag is not added in code 
wp_enqueue_script(
    'jquery', 
    get_template_directory_uri() . '/js/jquery.js', 
    array(), // don't make jquery dependent on jquery...! 
    '1.11.1', 
    true 
); 

} 
add_action('wp_enqueue_scripts', 'enqueue_jquery'); 

function enqueue_styles_scripts() { 

    //its OK 
    wp_enqueue_style(
     'style-theme', 
     get_stylesheet_uri(), 
     array('bootstrap-css') 
    ); 

    //its OK 
    wp_enqueue_style(
     'bootstrap-css', 
     get_template_directory_uri() . '/css/bootstrap.min.css' 
    ); 

    //its OK 
    wp_enqueue_style(
     'stylish-portfolio', 
     get_template_directory_uri() . '/css/othercss.css' 
    ); 

//I changed the directory of the files to css and fonts folders and it worked correctly 
    wp_enqueue_style(
     'font-awesome', 
     get_stylesheet_directory_uri() . '/css/font-awesome.css' 

    ); 


    //Appears in header but is working correctly 
    wp_enqueue_script(
     'bootstrap-js', 
     get_template_directory_uri() . '/js/bootstrap.min.js',null 
    ); 


} 
add_action('wp_enqueue_scripts', 'enqueue_styles_scripts'); 


//Its Ok  
function wpse_ie_conditional_scripts() { ?> 
    <!--[if lt IE 9]> 
     <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
     <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 
    <![endif]--> 
    <?php 
} 
add_action('wp_head', 'wpse_ie_conditional_scripts'); 

?> 

ответ

0

я был в состоянии решить без использования функции для разрегистрировать родной Wordpress JQuery и зарегистрировать мою тему JQuery

//Without using function 
    wp_deregister_script('jquery'); 
    wp_register_script('jquery', get_template_directory_uri() . '/js/jquery.js', false, '1.11.1'); 
    wp_enqueue_script('jquery'); 

     function enqueue_styles_scripts() { 

      //its OK 
      wp_enqueue_style(
       'style-theme', 
       get_stylesheet_uri(), 
       array('bootstrap-css') 
      ); 

      //its OK 
      wp_enqueue_style(
       'bootstrap-css', 
       get_template_directory_uri() . '/css/bootstrap.min.css' 
      ); 

      //its OK 
      wp_enqueue_style(
       'stylish-portfolio', 
       get_template_directory_uri() . '/css/othercss.css' 
      ); 

     //its OK 
      wp_enqueue_style(
       'font-awesome', 
       get_stylesheet_directory_uri() . '/css/font-awesome.css' 

      ); 


      //its OK 
      wp_enqueue_script(
       'bootstrap-js', 
       get_template_directory_uri() . '/js/bootstrap.min.js',null 
      ); 


     } 
     add_action('wp_enqueue_scripts', 'enqueue_styles_scripts'); 


     //Its Ok  
     function wpse_ie_conditional_scripts() { ?> 
      <!--[if lt IE 9]> 
       <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
       <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 
      <![endif]--> 
      <?php 
     } 
     add_action('wp_head', 'wpse_ie_conditional_scripts'); 

     ?> 
+0

Вы говорите, что это работает? Вы по-прежнему не регистрируете jQuery - за пределами WP hooks ... Я также замечаю, что вы удалили требование jquery для bootstrap.min.js - это определенно не будет работать wince bootstrap * does * require jquery ... 'wp_enqueue_script ('bootstrap- js ', get_template_directory_uri().' /js/bootstrap.min.js ', array (' jquery ')); '? – MacPrawn

+0

Да, его работы для меня, добавлены в исходный код ' 'и' Bootstrap.min.js' отлично работает – Gislef

1

Таким образом, проблема в том, что «jquery» уже зарегистрирован и поставлен в очередь WP. То, что я делал в прошлом, - это сначала отменить регистрацию jQuery, предоставленного WP, а затем поставить в очередь мою собственную версию. ВНИМАНИЕ: тщательно проверьте это, потому что теперь вы будете обновлять jQuery для всей установки WP!

wp_deregister_script('jquery'); // unregister the WP-provided jQuery version 
wp_enqueue_script(
    'jquery', 
    get_template_directory_uri() . '/js/jquery.js', 
    array(), // don't make jquery dependent on jquery...! 
    '1.11.1', 
    true 
); 

В качестве альтернативы, вы можете загрузить второй версии JQuery при работе без конфликтов режимом, но это не очень хорошая идея ...

Надеются, что это помогает!

+0

Спасибо за ответ, код незарегистрированного родную Wordpress JQuery, но это еще не регистрируя JQuery, который в моей папке проекта – Gislef

+1

Хммм - правда? Я отредактировал свой ответ, изменил 'null' для' array() 'как зависимости, но это не должно меняться ... Итак, тег скрипта вообще не добавлен в исходный код вашей страницы? Или это не загрузка? (ошибка 404) – MacPrawn

+0

Функция не добавляет jquery в код, в консоли появляются эти ошибки 'Uncaught Error: JavaScript для Bootstrap требуется jQuery В bootstrap.min.js: 6 VM48: 402' и' Uncaught ReferenceError: $ не определен На VM48: 402 ' – Gislef

Смежные вопросы