zac
  • 0
Новичок

Условный оператор не работает в функции

  • 0

Почему это не работает? Я пытаюсь выборочно загружать сценарии, но второй оператор if не загружает их там, где должен.

function my_init() {
    if (!is_admin()) {

        wp_deregister_script('jquery');
        wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js', false, '1.5');
        wp_enqueue_script('jquery');

            if (in_category('41') )  {
            wp_register_script('validator', '/wp-content/themes/myTheme/library/jquery.validationEngine.js', array('jquery'), '2.0', false);
            wp_enqueue_script('validator');

            wp_register_script('vEngine', '/wp-content/themes/myTheme/library/jquery.validationEngine-en.js', array('validator'), '2.0', false);
            wp_enqueue_script('vEngine');
            }

    }   


}
add_action('init', 'my_init');

Если я удалю второй оператор if для этой категории, он сработает, но я хочу ограничить его одной категорией или даже is_single(‘123’)

Что я делаю неправильно?

Share
  1. Я подозреваю, что вы делаете это слишком рано. Цикл еще не настроен при init запуске, поэтому вам нужно подключить его где-то еще. wp_print_scripts и wp_print_styles или get_header всегда хороший выбор. 😉

    • 0
  2. Я поковырялся, и кажется, что ссылка Кодекса на то, что вы можете использовать условные теги, как is_category() в init хуке, неверна. Однако этот код работает просто отлично:

    function my_init() {
        if (!is_admin()) {
    
            wp_deregister_script('jquery');
            wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js', false, '1.5');
            wp_enqueue_script('jquery');
        }   
    }
    function my_scripts() {
        if (in_category('41') )  {
            wp_register_script('validator', '/wp-content/themes/myTheme/library/jquery.validationEngine.js', array('jquery'), '2.0', false);
            wp_enqueue_script('validator');
    
            wp_register_script('vEngine', '/wp-content/themes/myTheme/library/jquery.validationEngine-en.js', array('validator'), '2.0', false);
            wp_enqueue_script('vEngine');
            }
    }
    add_action('init', 'my_init');
    add_action('wp_print_scripts', 'my_scripts');
    
    • 0

Оставить ответ

You must login to add an answer.