Проблемы с wp_enqueue_script в моем плагине

24 июл. 2012 г., 18:32:11
Просмотры: 1.26K
Голосов: 1

Я работаю над плагином и пытаюсь запустить js-файл при сохранении записи. Я прочитал много материала, но не могу понять, почему это не работает. Любые советы? Если я вставлю js-код напрямую в плагин, он работает... Я проверил путь к js-файлу, но результата нет.

add_action( 'admin_init', 'plugin_admin_init' );
function plugin_admin_init() {  
    wp_register_script( 'qtool-insert-v2', plugins_url() . '/buildStatus2/' . 'qtool-insert-v2.js' );
}

add_action( 'save_post', 'add_my_script' );
function add_my_script() {
    wp_enqueue_script( 'qtool-insert-v2' );
}

Вот qtool-insert-v2.js - простой редирект.

<script type="text/javascript">
<!--
window.location = "http://www.google.com/"
//-->
alert("HELLO");
</script>
0
Все ответы на вопрос 1
5

Вам необходимо подключиться к хуку admin_enqueue_scripts с помощью вашей функции add_my_script.

http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts

Пример:

function add_my_script() {
    wp_enqueue_script('qtool-insert-v2');
}add_action( 'admin_enqueue_scripts', 'add_my_script' );
24 июл. 2012 г. 18:37:34
Комментарии

Ах, понятно, спасибо за совет. Теперь я вижу этот скрипт в исходном коде, хотя перенаправления или всплывающего окна не происходит...

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

<script type='text/javascript' src='http://....../plugins/buildStatus2/qtool-insert.js?ver=3.3.2'></script>

Greg Greg
24 июл. 2012 г. 18:42:50

Похоже, мне не нужны теги <script>... но всё ещё нужно разобраться, как сделать так, чтобы это срабатывало только при сохранении записи

Greg Greg
24 июл. 2012 г. 18:52:20

Вы можете вызывать admin_enqueue_scripts только на определённых страницах админки, смотрите ссылку выше (http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts#Example:_Target_a_Specific_Admin_Page)

Rachel Baker Rachel Baker
24 июл. 2012 г. 19:01:28

@Greg Вы пытаетесь запустить JS при сохранении поста через PHP-действие или при событии клика по кнопке сохранения?

Brian Fegter Brian Fegter
24 июл. 2012 г. 20:02:17

@BrianFegter при действии сохранения поста. Каждый раз, когда пост публикуется или обновляется.

Greg Greg
24 июл. 2012 г. 20:07:58