Я встраиваю свой код Jplayer в свой веб-сайт, однако в установке WordPress уже есть jquery, но когда я копирую свой код через проигрыватель, он не работает, поскольку он не показывает значок громкости с x над ним. Когда я включаю внешний скрипт jquery, он ломает входной сайт, но плеер работает. Есть ли лучший способ включить jPlayer в мой сайт WordPress?
Jplayer и wordpress 3.6.x
comment
Я не могу, к сожалению, код до сих пор скрыт владельцами сайта. Но его базовый код и плеер работают сразу не в wordpress а в том числе и во внешнем файле jquery.
- person Kern Elliott   schedule 15.10.2013
comment
Посмотрите в консоли ошибок JavaScript, что именно ломается при использовании существующего jQuery
- person Pekka   schedule 15.10.2013
Ответы (1)
Сценарий jPlayer, поставленный в очередь, должен воспроизводиться по правилам WordPress. Самый простой (и, возможно, единственный) способ — использовать Шорткод. Многие разработчики, в основном разработчики тем, игнорируют тот факт, что мы не удаляем из очереди связанную версию jQuery< /a> и загрузить любую версию с какого-нибудь CDN (по крайней мере, мы не делаем этого, не зная точно, что делаем).
Вот грубый тест, функцию обратного вызова шорткода нужно сильно отшлифовать.
public function plugin_setup() // hooked into plugins_loaded
{
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue' ) );
add_shortcode( 'jplayer', array( $this, 'shortcode' ) );
}
public function enqueue()
{
wp_register_script(
'sj-jplayer',
$this->plugin_url . 'js/jquery.jplayer.min.js',
array( 'jquery' ), // <------- Dependencies
false,
true
);
wp_register_style( 'sj-skin', $this->plugin_url . 'skin/blue.monday/jplayer.blue.monday.css' );
wp_enqueue_script( 'sj-jplayer' );
wp_enqueue_style( 'sj-skin' );
}
public function shortcode( $atts, $content )
{
ob_start();
require_once('html-shortcode.php');
$var = ob_get_clean();
return $var;
}
Файл html-shortcode
в основном представляет собой код этой демонстрации, адаптированный следующим образом:
<?php
/*
* Prints the shortcode
*/
?>
<script type="text/javascript">
jQuery(document).ready(function($) // <------ WP noConflict
{
$("#jquery_jplayer_1").jPlayer({});
});
</script>
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
Я проверил этот шорткод jPlayer внутри другого, который выполняет jScrollPane, и он работал на iPad.
person
brasofilo
schedule
15.10.2013
На самом деле я поместил плеер в iframe. Это не чисто, но это сработало
- person Kern Elliott; 18.10.2013