Intereting Posts
Как добавить префикс или суффикс в post_tag slug? Удалить тег короткой ссылки с определенной страницы Front-end удалить учетную запись в WordPress Обратный URL-адрес изображения, если изображение отсутствует с помощью функции короткого кода как загрузить файл в медиа-библиотеку, используя ссылку Как я могу получить список активных плагинов в блоге WordPress? Программное добавление пользовательских фильтров для публикации списка Обновление пользовательской мета в пользовательской форме WordPress и перенаправление Запретить img-тег в комментариях? Как добавить настраиваемый мета-код, когда у вас есть файл шаблона страницы Не удалось подключиться к FTP-серверу 127.0.0.1/:21 Скрыть div для подписчиков (роль пользователя) на одной странице (is_page) Доступ к подкаталогам в WordPress Install Как настроить панель инструментов WordPress для разных пользователей? Объединить две установки WordPress в одну и сохранить разделение сообщений?

Проблема с получением файла .js для загрузки через плагин

Этот http://jsfiddle.net/ambiguous/7L4WZ/ работает … он удаляет пустые теги <p></p> а затем некоторые, но я не могу заставить его работать с моим плагином.

  $('p').each(function() { var $this = $(this); if($this.html().replace(/\s|&nbsp;/g, '').length == 0) $this.remove(); }); 

WP загружает jquery автоматически, поэтому, могу ли я просто загрузить файл .js из основного файла плагина следующим образом:

 <script type="text/javascript" src="<?php plugin_dir_url( __FILE__ ); ?>js/jquery.js"></script> 

Или мне нужно использовать wp_enqueue_script ()?

Когда я запускаю его как <script> он загружается как самая первая строка, даже до <!DOCTYPE> но выдает эту ошибку при загрузке скрипта:

 jquery.js:1SyntexError: Unexpected token '<' jquery.js:-1Resource interpreted as Script but transferd wiht MINE type text/html 

Внутри файла jquery.js я получаю эту ошибку:

 jquery.js:6SuntaxError: Invalid character '/u8203' 

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

 jquery.js:6SuntaxError: Invalid character '/u8203' 

для чипа …

myCoolPlugin.php загружается, когда плагин активирован, и вот часть, связанная с файлом .js.

выше, я просто определяю некоторые переменные … тогда

  add_action('wp_enqueue_scripts', 'add_stylesscripts'); function add_stylesscripts() { // css: // here I load a some stylesheets...removed for sapce // javascript wp_register_script( 'wlmm-js_custom', plugin_dir_url( __FILE__ ) . 'js/jquery.js', false ); wp_enqueue_script ('wlmm-js_custom'); } 

и затем я включаю некоторые другие файлы … end

Файл .js загружается, как и при установке в очередь, но в коде .js есть ошибка скрипта, но код .js отлично работает в jsfiddle.

Поэтому мой вопрос:

1) Я помещаю .js правильно 2) мне даже нужно вставить файл .js, и я должен запустить его как 3) почему код .js работает в jsfiddle, но не при загрузке через мой плагин?

Solutions Collecting From Web of "Проблема с получением файла .js для загрузки через плагин"

В вашем javascript есть недопустимый символ, который не может быть отображен большинством шрифтов, unicode 8203, поэтому вы его не видите. Если я скопирую код из jsfiddle, вставьте его в файл js, а затем отбросьте его в браузере, я вижу символ на последней строке.

Что касается вопроса о очереди, то да, вы должны ставить в очередь файлы, а не сразу вводить тег сценария.

Две потенциальные проблемы, которые я вижу в вашей очереди,

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

Ваш скрипт должен быть завернут в то, что запускает его, когда страница закончила загрузку, например jQuery(document).ready . Без этого ваш скрипт будет работать до того, как элементы, которые он действует, существуют в DOM. Также обратите внимание, что WordPress jQuery находится в режиме noConflict , поэтому вы должны ссылаться на объект jQuery через jQuery а не на $ :

 jQuery(document).ready(function($){ $('p').each(function() { var $this = $(this); if($this.html().replace(/\s|&nbsp;/g, '').length == 0) $this.remove(); }); });