it-roy-ru.com

Есть ли способ установить порядок подключаемых функций wp_footer?

Мне было интересно, если мы можем установить порядок функции, подключенной к wp_footer (), я создал функцию, которая echos:

<script> ajsfunction(); </script>

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

если мы не можем сделать это с помощью wp_footer, есть ли способ вывести этот тег скрипта после js-файла в очереди?

заранее спасибо.

2
Pierre

Рекомендованным способом является вызов вашей функции из файла .js, который вы ставите в очередь. Есть ли причина, по которой вы не можете этого сделать?

Если вам нужен доступ к динамическим данным, таким как опции WP, внутри скрипта, используйте wp_localize_script для инициализации объекта javascript с данными, которые вам нужны:

$data = array('some_option' => get_option('an_option_from_my_theme'));

wp_enqueue_script('your_script_handle', 'path/to/the/script.js');
wp_localize_script('your_script_handle', 'my_theme_options', $data);

В вашем скрипте вы можете получить доступ к данным, как к объекту javascript:

console.log(my_theme_options.an_option_from_my_theme);

  1. Поместите свой код в другой файл javascript, который вы ставите в очередь, и сделайте плагин зависимым от этого файла.

  2. Добавьте свой код в ловушку wp_footer после того, как WP напечатает сценарии нижнего колонтитула:

    add_action('wp_footer', function(){
    
     ?>
     <script>
    
     // your javascript
    
     </script>
     <?php 
    
     }, 100);
    

    "100" - приоритет, чем выше число, тем ниже приоритет выполнения вашего действия. Скрипты печатаются с приоритетом "20"

Я бы пошел с (1), если у вас много JS-кода, в противном случае встроенный JavaScript хорошо (2).

2
onetrickpony

Посмотри на это..

http://codex.wordpress.org/Function_Reference/add_action

Вы можете установить приоритет над двумя подключенными функциями

add_action('wp_footer','your_func',100);
add_action('wp_footer','your_func1',200);
0
Rajeev Vyas