2013-10-15 3 views
0

Я внедряю свой код Jplayer на свой сайт, но в Wordpress уже есть jquery, но когда я копирую свой код через плеер, он сломан, так как он не показывает значок тома с x над ним , Когда я включаю внешний скрипт jquery, он разбивает сайт entrie, но плеер работает. Есть ли лучший способ включить jPlayer в мой сайт WordPress?Jplayer и wordpress 3.6.x

+0

Я не могу, к сожалению, код по-прежнему скрыт владельцами сайтов. Но его базовый код и плеер работают один раз не в Wordpress и в том числе внешний файл jquery. –

+0

Посмотрите в консоль ошибок JavaScript, что именно ломается, когда вы используете существующий jQuery. –

ответ

1

Скрипт jPlayer enqueueing должен соответствовать правилами WordPress. Самый простой (и, возможно, единственный) способ - с Shortcode. Многие разработчики, в основном разработчики темы, игнорируют это we don't dequeue the bundled jQuery version и загружают любую версию с некоторого 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 в основном this demo код адаптирован как:

<?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.

+0

Что я на самом деле делал, был помещен плеер в iframe. Это не чисто, но это сработало –

Смежные вопросы