首先,我使用了这个插件
www.press75.com/themes/on-demand/this-is-a-sample-video-post-4/ & http://wordpress.org/extend/plugins/my-youtube-playlist/ &这个主题
我的意图是让youtube播放列表显示在主题的灰色区域,目前只有一个视频显示。我的意图是使用主题的Youtube代码嵌入字段作为我可以放置插件短代码的地方,从而让插件创建发布所需的播放列表。但是,当插件没有放在文章的内容区域时,我就无法让它执行这个短代码了。
一旦发布视频链接或将视频嵌入代码输入到主题的相关字段中,主题将创建视频容器Div (视频的灰色区域)。
我试过以下几种方法
[myyoutubeplaylist LO3n67BQvh0, WGOohBytKTU, iwY5o2fsG7Y, PyKNxUThW4E, 1cX4t5-YpHQ, SJ183htYl-8, eWwoHPrrJYY, bja2ttzGOFM]
硬编码到单个post php文件中,以查看插件是否会拾取它。没有运气。它只是简单地将短代码输出到屏幕上。<?php echo do_shortcode('[myyoutubeplaylist LO3n67BQvh0, WGOohBytKTU, iwY5o2fsG7Y, PyKNxUThW4E, 1cX4t5-YpHQ, SJ183htYl-8, eWwoHPrrJYY, bja2ttzGOFM]'); ?>
,看看它是否会捡起来。没有运气。它只是将短代码输出到屏幕上。<?php echo do_shortcode( get_video($post->ID); ?>
。没有运气。它只是将短代码输出到屏幕上。我的想法太差了,所以所有的帮助都会很感激
发布于 2010-12-16 17:06:07
将其放入您的functions.php文件:
add_filter('widget_text', 'do_shortcode');
然后在侧边栏中使用短代码,就像在主内容区域中一样。
发布于 2010-12-16 14:51:15
或者试试这个- TubePress
你可以用多种方式将它编码成你的主题,你可以很容易地用CSS编辑它的外观.
编辑:如何嵌入管压短程序外部的帖子/页面(在我看来,这其中有些是带有专业版的)
发布于 2014-02-28 08:08:50
我知道这个问题现在已经相当老了,但是由于没有一个答案能解决这个问题,我会考虑提供一些关于它的见解。
如果您试图将内容中的短代码放置到主题中的另一个区域,则需要注册一个筛选器,并在要运行该短代码的地方添加调用。假设我们想要一个具有类似于您在问题中所要做的功能的短代码--但是我将从一开始就开始对任何感兴趣的人。
我们首先注册一个新的短代码,以便从直接的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时,它会解析所有的短代码,并忽略非短代码值。一个很好的提示是,您所提供的短代码并不是一个短代码--单词空间是无效的。
源文件供参考。
https://stackoverflow.com/questions/4455481
复制相似问题