如何创建一个短码,让用户添加YouTube视频的ID?

时间:2011-01-25 作者:janoChen

我使用以下内容在帖子中添加YouTube缩略图,并在fancybox中显示视频:

<div><a class="fancybox" href="#video2">
<img src="http://img.youtube.com/vi/dm36W5NTPag/0.jpg" alt="Welcome To High Output" width="220px" height="120px" /></a></div>


<div id="video2" style="display: none;">
<iframe title="YouTube video player" class="youtube-player" type="text/html" width="480" height="390" src="http://www.youtube.com/embed/dm36W5NTPag" frameborder="0" 
allowFullScreen></iframe></div>
基本上,短代码必须有一个字段来输入缩略图中的视频ID、视频链接、第一个div的链接和第二个div的ID。

http://img.youtube.com/vi/(HERE)/0.jpghttp://img.youtube.com/vi/(HERE)/0.jpg

<a class="fancybox" href="#(HERE)"><div id="(HERE)" style="display: none;">

因此,短代码应该如下所示:

[youtube VIDEO ID:(Enter ID)]
有人知道怎么做吗?

1 个回复
最合适的回答,由SO网友:onetrickpony 整理而成
add_shortcode(\'youtube\', \'youtube_shortcode\'); 

function youtube_shortcode($atts){  

  if(!isset($atts[0])) return;
  $id = strip_tags($atts[0]);
  ob_start();
  ?>

<div><a class="fancybox" href="#video_<?php echo $id; ?>">
<img src="http://img.youtube.com/vi/<?php echo $id; ?>/0.jpg" alt="Welcome To High Output" width="220px" height="120px" /></a></div>


<div id="video_<?php echo $id; ?>" style="display: none;">
<iframe title="YouTube video player" class="youtube-player" type="text/html" width="480" height="390" src="http://www.youtube.com/embed/<?php echo $id; ?>" frameborder="0" 
allowFullScreen></iframe></div>

  <?php
  return ob_get_clean();
}

use it like: [youtube "dm36W5NTPag"]

结束

相关推荐

Nested Shortcode Detection

如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#