首先,我正在使用这个插件
http://wordpress.org/extend/plugins/my-youtube-playlist/ &安培;这个主题, www.press75.com/themes/on-demand/this-is-a-sample-video-post-4 /
我的目的是让youtube播放列表显示在主题的灰色区域中,目前只显示1个视频。我的意图是使用主题的Youtube Code嵌入字段作为我可以放置插件短代码的地方,因此让插件创建帖子所需的播放列表。但是,一旦它没有被放置在帖子的内容区域中,我就无法让插件执行短代码。
一旦发布视频链接或将视频嵌入代码输入主题的相关字段,主题就会创建一个视频容器Div(视频的灰色区域)。
我尝试了以下
将[myyoutubeplaylist LO3n67BQvh0, WGOohBytKTU, iwY5o2fsG7Y, PyKNxUThW4E, 1cX4t5-YpHQ, SJ183htYl-8, eWwoHPrrJYY, bja2ttzGOFM]
硬编码到单个帖子的php文件中,看看插件是否会将其取出。没运气。它只是将短代码输出到屏幕
硬编码<?php echo do_shortcode('[myyoutubeplaylist LO3n67BQvh0, WGOohBytKTU, iwY5o2fsG7Y, PyKNxUThW4E, 1cX4t5-YpHQ, SJ183htYl-8, eWwoHPrrJYY, bja2ttzGOFM]'); ?>
以查看是否会接收它。没运气。它只是将短代码输出到屏幕上。
让模板将短代码参数转储到以下内容中:
<?php echo do_shortcode( get_video($post->ID); ?>
。没运气。它只是将短代码输出到屏幕
重复主题
我的想法很新鲜,所以任何和所有的帮助都会非常受欢迎
答案 0 :(得分:1)
将它放在你的functions.php文件中:
add_filter('widget_text', 'do_shortcode');
然后像在主要内容区域中一样使用侧边栏中的短代码。
答案 1 :(得分:0)
或试试这个 - TubePress
您可以通过多种方式将其编码到主题中,并且可以使用CSS轻松编辑它的外观......
编辑:how to embedd tubepress shortcode在帖子/页面之外(在我看来,其中有些内容与专业版本相关)
答案 2 :(得分:0)
<?php echo myYoutubePlaylist('[myyoutubeplaylist WnY59mDJ1gg, bKwQ_zeRwEs]'); ?>
答案 3 :(得分:0)
我知道这个问题现在已经很老了,但由于没有一个答案已经解决了,我会看到提供一些见解。
如果您尝试将内容中的短代码放入主题中的其他区域,则需要注册过滤器并将呼叫添加到您希望运行短代码的位置。假设我们想要一个具有与您在问题中尝试的功能类似的短代码 - 但我会在一开始就为任何感兴趣的人启动它。
我们首先注册一个新的短代码,以便从直接的YouTube链接输出视频,例如此https://www.youtube.com/watch?v=eh7lp9umG2I,这样用户就不必手动进行任何解析(我们实际上只需要最后一个参数) )。
在此之后我们需要注册一个过滤器。在这种情况下,由于我们想要从内容中获取此视频并将其放在其他位置,我们将在'the_content'上应用过滤器。
接下来我们将创建一个函数,以确保我们在过滤器删除它之前获取短代码的副本 - 只是保持所有干燥。
最后,我们只需要输出视频。
function your_shortcode_handler($atts)
{
$url = $atts['video'];
if (isset($url))
{
$type = 'application/x-shockwave-flash';
$url = str_replace("watch?v=", 'v/', $url);
$obj = "<object data='$url' type='$type'><param name='src' value='$url' /></object>"
return $obj;
}
}
add_shortcode('your_shortcode_name', 'your_shortcode_handler');
function your_shortcode_filter($content)
{
$pattern = "/\[your_shortcode_name(.*?)\]/";
$content = preg_replace($pattern, '', $content);
return $content;
}
add_filter('the_content', 'your_shortcode_filter');
function stealFromContent($content)
{
$pattern = "/\[your_shortcode_name(.*?)\]/";
$match = null;
preg_match($pattern, $content, $match);
if (is_array($match) and $match[0] != '')
{
return $match[0];
}
return '';
}
//somewhere in the template you're wanting to add the video to
//BEFORE the_content is called.
$youtube_video = stealFromContent();
//then
echo $youtube_video; //wherever you want it.
现在回答作者的问题。编写此插件的个人的选择类型不使用短代码。他正在重新审视the_content,类似于我上面所做的,然后将这些值传递给javascript库。
当调用do_shortcode时,它会解析所有短代码并忽略非短代码值。一个很好的提示是,您提供的短代码不是短代码 - [字空间字空间]无效。
source file供参考。
答案 4 :(得分:-1)
你为什么不尝试这个插件?