1

Я использую плагин acf v4 для wordpress. Я пытаюсь включить input.js. Это код, который я добавилWordpress ACF Include input.js не работает

function input_admin_enqueue_scripts() 
    { 
     // Note: This function can be removed if not used 


     // register ACF scripts 
     wp_register_script('acf-input-progressbar', $this->settings['dir'] . 'js/input.js', array('acf-input'), $this->settings['version']); 
     wp_register_style('acf-input-progressbar', $this->settings['dir'] . 'css/input.css', array('acf-input'), $this->settings['version']); 


     // scripts 
     wp_enqueue_script(array(
      'acf-input-progressbar',  
     )); 

     // styles 
     wp_enqueue_style(array(
      'acf-input-progressbar',  
     )); 


    } 

Но javascript никогда не вызывается. Я добавил console.log функцию для проверки вызова:

(function($){ 

    console.log("Test input.hs"); 

.... 

Это имя, которое я использовал для моего плагина: ACF-ProgressBar

Файлы:

  • ACF-ProgressBar -v4.php
  • ACF-progressbar.php

ответ

2

Вы должны подключить в функции с чем-то вроде следующего:

add_action('admin_enqueue_scripts', 'input_admin_enqueue_scripts'); 

выше вызов будет епдиеие сценарий на стороне администратора WordPress, который является то, что я предполагаю, что вы хотите, в связи с именем функции. Если вы хотите епдиеие их везде, то используйте вместо этого:

add_action('wp_enqueue_scripts', 'input_admin_enqueue_scripts'); 

Вызовы add_action должны иметь место в глобальном пространстве. Таким образом, в конце концов, вы будете иметь что-то вроде:

function input_admin_enqueue_scripts() { 
    // Note: This function can be removed if not used 
    // register ACF scripts 
    wp_register_script('acf-input-progressbar', $this->settings['dir'] . 'js/input.js', array('acf-input'), $this->settings['version']); 
    wp_register_style('acf-input-progressbar', $this->settings['dir'] . 'css/input.css', array('acf-input'), $this->settings['version']); 

    // scripts 
    wp_enqueue_script(array(
     'acf-input-progressbar',  
    )); 

    // styles 
    wp_enqueue_style(array(
     'acf-input-progressbar',  
    )); 
} 
add_action('admin_enqueue_scripts', 'input_admin_enqueue_scripts'); 

Если у вас уже есть ваша функция перехваты с вызовом add_action, то проблема, вероятно, что у Вас есть свой стиль и сценарий называется так же:

wp_register_script('acf-input-progressbar' ... 
wp_register_style('acf-input-progressbar', ... 

я переключил бы это на следующее и посмотрите, что работает:

wp_register_script('acf-input-progressbar-js' ... 
wp_register_style('acf-input-progressbar-css', ... 
+0

более подробную информацию о Крючки действий прочитать эту статью Codex: https://codex.wordpress.org/Plugin_API/Action_Reference – SufferMyJoy

+0

Теперь вызов javascript-файла работает благодаря :). Но я получаю эту ошибку, когда я вызываю файл input.js: acf.o имеет значение null. –

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