как загрузить Javascript в WordPress Plugin

Может кто-нибудь покажет мне, как включить этот файл javascript в мой плагин wordpress. Я пробовал все методы wp_enqeue_script (), но ничего не происходит.

ok вот мой пример кода плагина с комментариями, объясняющими, что я хотел бы.

<?php /* Plugin Name: Ava Test Plugin URI: http://#.com Description: A plugin that is used for my javascript tests Author: Ronny Kibet Author URI: http://ronnykibet.com version: 1.001 */ include(popup.js); /*when I include it this way, it works fine, but gives an error when I activate the plugin 'plugin generated 453 characters ...' */ function popup() { $src = plugins_url('popup.js', __FILE__); wp_register_script( 'popup', $src ); wp_enqueue_script( 'popup' ); } /* when I included it this way, plugin is activated but nothing happens. */ ?> 

это popup.js

 <script type="text/javascript"> function popup(){ alert('hello there this is a test popup') } </script> <body onload="popup()"> </body> 

Так кто-нибудь знает, как назвать этот скрипт правильно работать в WordPress-плагине?

Вам нужно указать, когда произойдет загрузка, попробуйте это.

 <?php /* Plugin Name: Ava Test Plugin URI: http://#.com Description: A plugin that is used for my javascript tests Author: Ronny Kibet Author URI: http://ronnykibet.com version: 1.001 */ add_action('wp_enqueue_scripts','ava_test_init'); function ava_test_init() { wp_enqueue_script( 'ava-test-js', plugins_url( '/js/ava_test_.js', __FILE__ )); } 

Кроме того, в вашем JS есть ошибки, но я видел правильную версию в некоторых ответах, надеюсь, что это поможет

Обновление: есть крючок, называемый wp_enqueue_scripts, как упоминается @brasofilo, который должен использоваться вместо init для загрузки скриптов.

Обучение работе в структуре WP может быть разочаровывающим.

И, научиться вводить javascript может быть еще более неприятным.

Итак, все здесь внесли что-то ценное, однако вам нужно собрать все это вместе. Так:

Первый:
Удалите строку включения. Тебе это не нужно.

Во-вторых:
Убедитесь, что переменная $ src в вашем коде на самом деле является правильным путем. Я бы добавил:

 echo $src; 

ИСПЫТАТЬ, если местоположение верное.

В-третьих: Aghoshx правильный – вы ДОЛЖНЫ иметь ссылку на крючок:

 add_action('init','popup'); 

(Поскольку вы назвали всплывающее окно функции, это то, что я вложил – ОДНАКО, чтобы предотвратить сортировку имен функций с другими функциями и плагинами WP, я повторяю, что вы меняете его на нечто более уникальное, например, предложенное aghoshx)

В-четвертых: убедитесь, что ваш сценарий загружен. После того, как вы выполните шаги 1-3 выше, перейдите к обновлению страницы WP и выполните «источник просмотра». Найдите файл сценария. Если вы находитесь в Firefox, вы можете на самом деле щелкнуть по URL-адресу, и он будет загружать его, если вы в IE, затем скопируйте URL-адрес в строку url и посмотрите, действительно ли ваш файл есть (если это так, это Если НЕ, то он НЕ загружает файл правильно, и вам нужно исправить путь, который вы устанавливаете, в переменную $ src).

В-пятых: после того, как вы получите вышеупомянутое гвоздь, циллоз прав – вам нужно удалить все, кроме функции javascript (вы даже удалите теги) из файла javascript.

Наконец: посмотрите на Martti Laines ответ – вам нужно связать событие, используя его предложенный window.addEventListener, ИЛИ ELSE изменить тег в вашем шаблоне php, чтобы он содержал onload = "popup" (как и в файле сценария).

Один из последних предложений:

jQuery многое делает намного проще. Очень легко привести jQuery в ваш WP плагин. Просто добавьте это в свою всплывающую функцию php:

 enqueue_script('jquery'); 

Удачи!

Вы включаете HTML в свой .js-файл, и вы никогда не добавляли точку с запятой в конец предупреждения (). Может быть, попробуйте просто иметь это в своем popup.js:

 function popup(){ alert('hello there this is a test popup'); } 

А затем в вашем HTML добавьте onload="popup()" в тег body.

popup.js должен popup.js только JavaScript-код, без HTML. Попробуйте это (в popup.js )

 function popup(){ alert('hello there this is a test popup'); } window.addEventListener('load',function(event){popup();},false); 

Или просто это:

 window.addEventListener('load',function(event){ alert('hello there this is a test popup'); },false);