Разработка плагина WordPress Вызов неопределенной функции jQuery ()

Серьезно, я потерял весь свой день с этим … Либо я полностью упустил точку … Или я действительно не могу найти правильную информацию в Интернете …

Всюду, где я нахожу, они говорят, что загружают jQuery следующим образом, в моем основном файле моего плагина я делаю следующее

Это wp_enqueue_scripts (с S) для загрузки скриптов

add_action('wp_enqueue_scripts', 'myplugin_load_jquery'); 

Тогда вам понадобится функция, которая вызывает jQuery (wp_enqueue_script no S для этого).

 function myplugin_load_jquery(){ wp_enqueue_script('jquery'); }; 

Что мне не хватает,

После этого я пытаюсь использовать следующее, и он всегда дает мне сообщение «Call to undefined function jQuery ()»

 jQuery(document).ready(function(){ //Do anything... }); 

Может ли кто-нибудь наконец сказать мне, как это сделать правильно? Четко? Или указать мне где-нибудь с правильной и четкой информацией?

Нужно ли мне полностью вставлять скрипты в файл .JS? Или я могу запустить его из того же файла?

… Работая сейчас … Выполняя больше тестов

Вам нужно указать jquery как зависимость вашего настраиваемого скрипта, установив третий параметр wp_enqueue_script () в array('jquery') , например:

 wp_enqueue_script( 'yourCustomScript', plugins_url('js/yourCustomScript.js', __FILE__), array('jquery'), '1.0.0', false ); 

Измените путь, чтобы указать на свой файл настраиваемого сценария

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

Также имейте в виду, что ваш обычный псевдоним $() не будет работать, если вы не закроете свой код:

 jQuery(document).ready(function($) { // Inside of this function, $() will work as an alias for jQuery() // and other libraries also using $ will not be accessible under this shortcut }); 

Резкость .

Вот пример тестирования, который должен работать внутри пользовательского плагина:

JQuery-test.js:

 jQuery(document).ready(function($) { $('<a/>', { id: 'foo', href: 'https://www.google.com/webhp?q=jquery+mistakes+you+are+probably+making', title: 'bar', rel: 'external', text: 'jQuery\'s dead! Long live jQuery!', style: '' + 'position: fixed;' + 'top: 120px; ' + 'left: 0; ' + 'padding: 10px 20px; ' + 'background-color: #369; ' + 'color: white; ' + 'z-index: 9999;' + 'border-radius: 0 6px 6px 0' }) .prependTo('body'); }); 

Поместите этот файл в папку вашего плагина /js . В главном файле вашего плагина добавьте этот php:

 add_action('wp_enqueue_scripts', 'testing_jquery'); function testing_jquery() { if ( ! is_admin()) wp_enqueue_script( 'testing-jquery', plugins_url('js/testing-jquery.js', __FILE__ ), ['jquery'], true ); } 

Удостоверьтесь, что он не находится внутри какой-либо другой функции или класса.

Если вы не добавляете это через плагин, а тему, поместите файл testing-jquery.js папку темы /js и замените plugins_url('js/testing-jquery.js', __FILE__ ), с помощью get_stylesheet_directory_uri() . '/js/testing-jquery.js', get_stylesheet_directory_uri() . '/js/testing-jquery.js',

Это должно добавить синюю ссылку на поиск Google для распространенных ошибок при использовании jQuery на каждой странице интерфейса вашего веб-сайта.

Вам не нужно специально вставлять в очередь jQuery, поскольку вы, вероятно, используете jQuery в своем настраиваемом скрипте. Ты можешь сделать:

 wp_enqueue_script( 'my-script', plugin_url( 'js/my-script.js', __FILE__ ), array('jquery') ); jQuery(document).ready(function($){ //Do anything... }); 

Обратите внимание, что $, переданный в качестве аргумента для обратного вызова, сделает jQuery доступным для вашей области действия.

Вам нужно убедиться, что jQuery загружен, поэтому выведите свой код в конце действия, например, для 'wp_print_footer_scripts' интерфейса вы можете использовать 'wp_print_footer_scripts' с большим приоритетом:

 add_action( 'wp_print_footer_scripts', function () { ?> <script> jQuery(document).ready(function(){ //Do anything... }); </script> <?php }, 50 ); 

Аналогично для 'admin_print_footer_scripts' .

Просто следуйте этим шагам, в моем случае мое имя плагина – это удивительные социальные иконки.

  // Step - 1 <?php function register_awesome_social_submenu_page() { add_submenu_page('options-general.php', 'Awesome Social', 'Awesome Social', 'manage_options', 'awesome-social', 'awesome_social_callback'); } ?> // Step - 2 <?php add_action('admin_menu', 'register_awesome_social_submenu_page'); ?> // Step - 3 <?php function awesome_social_callback() { wp_enqueue_script('jquery'); wp_enqueue_script('jquery-form'); ?> <script> $j=jQuery.noConflict(); $j(document).ready(function(){ // Do what you want :) }); </script> <?php } ?>