Проблемы с Javascript и JQuery - захват и запись данных YouTube на страницу - PullRequest
2 голосов
/ 31 октября 2011

Я бы сказал, что у меня небольшой опыт работы с Javascript и JQuery, но за время, потраченное на работу на одном из моих новых сайтов, у меня ничего не получается. По сути, я использую PHP для записи идентификатора видео в код JavaScript, который затем выполняется, чтобы получить название, загрузчик, просмотры и длину видео на YouTube. На моем другом сайте все работает нормально (боковая панель «Последние видео» на Mechabyte.com), но на моем новом сайте FirstPersonTheater.net ничего не работает. Я включил библиотеку JQuery, но мои скрипты не записывают информацию в поля div каждого поста. Я объяснил, что это может быть просто следствием использования темы barebones (я создаю свою собственную, но хочу, чтобы изломы работали при ее создании), но поскольку у меня есть все требования (библиотека JQuery в заголовке + скрипты) Я думаю, что должно все еще работать. Вот загляните в мой исходный код, вы также можете посетить сайт и проверить некоторые элементы, чтобы убедиться, что я что-то упускаю.

Базовая раскладка (Предположим, идентификатор видео 0000000000000:

<div class="index_post">
<a href="<?php the_permalink() ?>">
   <div class="image">
      <div class="container" style="background:url('http://img.youtube.com/vi/0000000000000/0.jpg');">
                                                                                                </div>
             <div id="data_time<?php the_ID(); ?>" style="position:absolute;z-index:9;text-decoration:none;bottom:2px;right:2px;font-size:10px;color:#fff;background:#000;padding:0px 2px;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;opacity:0.75;">
                    3RR:0R!
             </div>
      </div>
      <div class="postinfo">
             <div class="data_uploadedby<?php the_ID() ?>"></div>
             <div class="data_views<?php the_ID() ?>"></div>                
      </div>
      <div class="extras">
      <script type="text/javascript">
            function ytindex<?php the_ID(); echo time() ?>( data )
                    {
                    $('#data_time <?php the_ID() ?>').html( secondsToHms( data.entry[ "media$group" ][ "yt$duration" ].seconds ) );
                    $('.data_postedby<?php the_ID() ?>').html( 'by ' + data.entry[ "author" ][ 0 ].name.$t );
                    $('.data_uploadedby<?php the_ID() ?>').html( data.entry[ "title" ].$t );
                    $('.data_views<?php the_ID() ?>').html( data.entry[ "yt$statistics" ].viewCount + ' views</h3>' );
                    }
      </script>
      <script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/0000000000000?v=2&callback=ytindex<?php the_ID(); echo time() ?>"></script>
   </div>
</a>
</div>

Вот результат (элементы CSS, такие как миниатюры, отображаются нормально, потому что они обрабатываются с PHP, но не загружаются другие элементы): http://i.stack.imgur.com/0HYKQ.png (ссылка b / c из SO rep)

Заранее спасибо! По своему опыту могу сказать, что большинство людей на этом сайте - отличные помощники! Матф

1 Ответ

0 голосов
/ 09 ноября 2011

библиотека jquery уже включена в текущие версии WordPress. Используйте wp_enqueue_script , чтобы добавить библиотеку jquery. Не просто добавьте скрипт в файл header.php ...

Тогда вам также понадобится использовать эту готовую функцию для совместимости с WordPress.

jQuery(document).ready(function($){
// now you can use jQuery code here with normal $ shortcut formatting
}); 
...