我有一个名为Aruna的Wordpress主题(很适合视频)。在帖子编辑器中,一旦我想制作视频,我只需将YouTube网址粘贴到该字段中并发布即可。
我想在已发布的所有帖子中自动整合JW播放器(而不是YouTube播放器)。
如果将此代码放在帖子文本内容中,则加载视频没有问题:
<div id="myElement"></div>
<script>
jwplayer("myElement").setup({
file: "http://www.youtube.com/watch?v=8CjdLYBDUqw",
width: 640,
height: 360
});
</script>
该代码的一切都很好。它使用JW播放器加载YouTube视频。
我想编辑content-video.php
(该帖子的视频部分),并使其能够从我正常使用的相同字段中选择网址。
使用Firebug,我可以在编辑器中看到该字段的名称:
<input type="text" value="http://www.youtube.com/watch?v=E8k20kHZjug" id="_video_externalvideo" name="_video_externalvideo" class="cmb_oembed">
默认情况下,在content-video.php
内,它通过php获取URL:
<?php }
if( (isset($externalvideo) && $externalvideo != '') || (isset($localvideo) && $localvideo != '') ) { ?>
<div class="video-wrap">
<?php
if(isset($externalvideo) && $externalvideo != '') {
if(isset($GLOBALS['wp_embed'])) {
$embed = $GLOBALS['wp_embed']->autoembed($externalvideo);
$embed = str_replace("feature=oembed", "feature=oembed&wmode=transparent", $embed);
echo $embed;
}
}
elseif(isset($localvideo) && $localvideo != '') {
echo apply_filters('the_content', '[video width="650" height="360" src="' . $localvideo . '"]');
}
?>
我想我应该摆脱那个PHP代码并改为:
<script>
jwplayer("myElement").setup({
file: "http://www.youtube.com/watch?v=8CjdLYBDUqw",
width: 640,
height: 360
});
</script>
我的问题是:如何编辑部件中的脚本:
file: "http://www.youtube.com/watch?v=E8k20kHZjug"
自动能够从我在默认视频帖子中使用的相同字段中获取网址吗?
我应该在脚本中使用php函数还是只使用javascript函数?
我尝试了一切,到目前为止没有任何工作。我对php
和javascript
了解不多。
我希望你们中的一个能帮助我。
我觉得接近解决方案:
<script>
jwplayer("myElement").setup({
file: function
.getElementById("_video_externalvideo"),
width: 640,
height: 360
});
</script>
提前多多感谢。
亚历
此处$externalvideo
中定义了content-video.php
:
<?php global $redux_demo; $localvideo = get_post_meta($post->ID, '_video_localvideo', true); $externalvideo = get_post_meta($post->ID, '_video_externalvideo', true); $nsfw = get_post_meta($post->ID, '_video_nsfw', true); if(is_user_logged_in() ) { $userid = wp_get_current_user(); if(get_user_meta($userid->ID, '_nsfw', true) != 1) { $nsfw = 2; } } $class = 'main-post'; if(is_single() ) { $class .= ' post-page'; } ?>
更新:感谢@SilverKenn提供了有用的答案, 我还没有解决问题,但我们正在接近解决方案。 我把PHP代码放在我的模板中,但最后它被读成这样:
<script type="text/rocketscript" data-rocketoptimized="true">jwplayer("player-viralizzato").setup({
file:http://www.youtube.com/watch?v=txPQC8NB_-M,
width: 640,
height: 360
});</script>
而不是:
<script>jwplayer("player-viralizzato").setup({
file:"http://www.youtube.com/watch?v=txPQC8NB_-M",
width: 640,
height: 360
});</script>
如果我在Firebug中编辑代码:
<script type="text/rocketscript" data-rocketoptimized="true">
到<script>
和
file:http://www.youtube.com/watch?v=txPQC8NB_-M,
到file:"http://www.youtube.com/watch?v=txPQC8NB_-M",
它会正常工作,任何想法?
再次感谢
答案 0 :(得分:0)
如果视频网址已经在您要显示播放器的页面上,
你可以像这样简单地使用Jquery,
(function($){
// Get the video URL
var video_uri = $('#_video_externalvideo').val();
jwplayer('myElement').setup({
file: '"' +video_uri + '"',
width: 640,
height: 360
});
})(jQuery)
或在模板中使用PHP
$externalvideo = get_post_meta($post->ID, '_video_externalvideo', true);
echo '<script>'."\n";
echo "\t".'jwplayer("myElement").setup({'."\n";
echo "\t\t".'file:"'.$externalvideo.'",'."\n";
echo "\t\t".'width: 640,'."\n";
echo "\t\t".'height: 360'."\n";
echo "\t".'});'."\n";
echo '</script>'."\n";