• Здравствуйте. Хочу на single страницы подключить пару скриптов, но почему-то не получается.

    В functions.php темы пишу:

    function print_single() {
    
    wp_enqueue_script('jquery-form',get_bloginfo('template_directory').'/js/jquery.form.js',array('jquery'),'3.09',false);
    wp_enqueue_script('jquery-ui-dialog.datepicker');
    
    }
    
    if( is_single() ) add_action('wp_print_scripts', 'print_single');

    Но в списке подключённых скриптов в сгенерированной странице их нет почему-то…

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • wp_enqueue_script('jquery-ui-datepicker');
    wp_enqueue_script('jquery-ui-dialog');
    wp_enqueue_script('jquery-form');

    К сожалению, не помогло.

    Вот код в functions.php:

    function print_single() {
    
    		wp_enqueue_script('jquery-ui-datepicker');
    		wp_enqueue_script('jquery-ui-dialog');
    		wp_enqueue_script('jquery-form');
    
    }
    
     if( is_single() ) add_action('wp_print_scripts', 'print_single');

    Вот код, запускающий дэйтпикер:

    jQuery(document).ready(function(){
    
        				jQuery('label.dateselector').click(function(){
    
        					jQuery('.dateselector input').datepicker();
    
        				});
    
        			});

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

    Может нужно зависимости указать?

    (если, зайдя на страницу и посмтрев ресурсы/код, вы увидите подключённый jquery form, то это только потому, что я его в <header></header> захардкодил. А хотелось бы правильно.)

    А, ну конечно. Не туда вставляете проверку is_single():

    function print_single() {
       if( is_single() ) {
    	wp_enqueue_script('jquery-ui-datepicker');
    	wp_enqueue_script('jquery-ui-dialog');
    	wp_enqueue_script('jquery-form');
       }
    }
    
    add_action('wp_print_scripts', 'print_single');

    Докуметация
    Note: This function will not work if it is called from a wp_head or wp_print_scripts actions, as the files need to be enqueued before those actions are run. See the Usage section for the correct hooks to use.
    Кратко: Хук срабатывает позже, чем надо. Попробуйте так
    add_action('wp_enqueue_scripts', 'print_single');

    О, а какой хук ловится, я даже и не заметил 🙂

    Спасибо, mkramer, заработало.

Просмотр 7 ответов — с 1 по 7 (всего 7)

Тема «Не получается wp_enqueue_script» закрыта для новых ответов.