Intereting Posts
Фильтр the_content (), чтобы добавить собственные фигурные теги Использование настраиваемого значения поля в качестве текущего имени пользователя Есть ли способ для плагина добавить атрибут в тег <html> темы? Каков правильный синтаксис добавления URL-адреса с помощью короткого кода для iframe? У сообщений есть родители? Как включить файл только на странице виджетов на панели управления? Как отправить запрос на получение файла file.php справа и где хранить этот файл.php? bloginfo ('stylesheet_directory') по сравнению с get_stylesheet_directory_uri () и include ('file.php') по сравнению с get_template_part () Мой плагин с надписью «Вы уверены, что хотите сделать это» на экране с «Аргументом № 2 не является массивом в load.php» как перенаправить на другой пост без получения заголовков уже отправленных ошибок? Именование скрипта правильно обрабатывается Как решить этот настраиваемый тип сообщения идет на страницу 404? Рекомендуемое изображение в обзорной колонке CPT Должен ли я использовать пользовательскую таксономию или пользовательский тип сообщения Loop для отображения случайных сообщений только в том случае, если настраиваемое поле соответствует категории

plugins_url () неверно возвращает каталог wp-include

Я сомневаюсь, что есть ошибка с plugins_url() но это какое-то странное поведение, которое я вижу.

У меня есть следующее в активированном плагине

 function include_masonry() { wp_enqueue_script( 'masonry', plugins_url('js/masonry.min.js', __FILE__), array(), '3.2.1', true ); wp_enqueue_script( 'my_init_script', plugins_url('js/my_init_script.js', __FILE__), array(), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'include_masonry' ); 

Я пришел к этому после использования get_template_directory_uri() но решил против него, так как я хочу, чтобы все плагины соответствовали js в папке плагина.

Это вывод в нижнем колонтитуле:

 <script type='text/javascript' src='http://example.com/wp-includes/js/masonry.min.js?ver=3.1.2'></script> <script type='text/javascript' src='http://example.com/wp-content/plugins/myplugin/js/my_init_script.js?ver=1.0.0'></script> 

Второй – это хорошо, но первый имеет 2 ошибки.

1) Почему это ?ver=3.1.2 когда я указал 3.2.1? Это не опечатка.

2) Почему он не загружает masonry.min.js из папки плагина !? plugins_url() что get_template_directory_uri() возвращает возвращаемое get_template_directory_uri() , но только для masonry.min.js . Я сильно обновил, удалил файл плагина, перезагрузил, поменял строки wp_enqueue_script и всегда wp_enqueue_script на неправильный каталог с неправильным параметром версии.

Масонство уже зарегистрировано WordPress.

Из wp-includes/script-loader.php :

 // Masonry v2 depended on jQuery. v3 does not. The older jquery-masonry handle is a shiv. // It sets jQuery as a dependency, as the theme may have been implicitly loading it this way. $scripts->add( 'masonry', "/wp-includes/js/masonry.min.js", array(), '3.1.2', 1 ); $scripts->add( 'jquery-masonry', "/wp-includes/js/jquery/jquery.masonry$dev_suffix.js", array( 'jquery', 'masonry' ), '3.1.2', 1 ); 

Итак, ваш первый wp_enqueue_script() снова не регистрирует кладку. WordPress использует уже существующий ресурс. plugins_url() не имеет отношения, его значение даже не используется.