Typecho 自定义字段使用方法:视频播放

该方法用于在 Typecho 中创建单个视频播放的页面/文章,实现单页存储多个视频数据,根据 GET 请求播放不同视频,效果如下链接内容:

http://www.wanghang.ac.cn/ali-xinyan.html

比起上一个使用“自定义模板”的方法,感觉这个应该简洁好用一些,官方参考文档:自定义字段使用
这次只用根据需要在 post.php 或者 page.php 中添加一段代码即可,我添加在 post.php 中实现文章页面播放视频。
添加位置如下所示:

// 添加在这里
$this->content();
// 或者这里都可以

需要添加的代码如下:

function player($title, $url){
 echo '<h2>正在播放:'.$title.'</h2>';
  echo '<embed src="'.$url.'" allowFullScreen="true" quality="high" width="612" height="480" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>';
}
if(isset($this->fields->video)){
 $video_json = $this->fields->video;
 $json_array=json_decode($video_json,true);
  if(isset($_GET['video'])&&$_GET['video']>0&&$_GET['video']<=count($json_array)){
    player($json_array[$_GET['video']-1]['title'], $json_array[$_GET['video']-1]['url']);
 }else if(count($json_array)>0){
   player($json_array[0]['title'], $json_array[0]['url']);
 }
 if(count($json_array)>1){
   echo '<p>选集:';
    for($i=1;$i<=count($json_array);$i++){
      echo '<a href="?video='.$i.'" target="_self">'.$json_array[$i-1]['title'].'</a> ';
    }
   echo '</p>';
  }
}

保存上面的内容之后,打开 Typecho 后台 >> 新建文章 >> 自定义字段 >> 添加字段 >>

  • 字段名称填写:video
  • 默认选择“字符”类型
  • 字段值填写格式(json)

示例如下:

[{"title":"视频标题","url":"视频站的Flash链接"},{"title":"视频标题","url":"视频站的Flash链接"},……]

添加的代码会自动判断有没有设置 "video" 字段,如果有则解析 json 字符串然后输出播放器代码,如果没有则只输出文章内容。文章内容显示在视频的前面或后面由添加代码的位置决定。
下面是《信燕》页面编辑时的文章内容:

在这个忙碌而快速的时代,有多少人还记得提笔写信时的忐忑和等候回信时的期待呢?在童话的世界里,有一种白色的信燕,可以把思念读给远方的人。让我们跟阿狸和桃子一起,重温那一份心底的感动吧。

自定义字段 "video" 的值:

[{"title":"阿狸·信燕第一章","url":"http://static.video.qq.com/TPout.swf?vid=9Eux7PkpWR2&auto=0"},{"title":"阿狸·信燕第二章","url":"http://static.video.qq.com/TPout.swf?vid=9fsF8Ni684Q&auto=0"},{"title":"阿狸·信燕第三章","url":"http://static.video.qq.com/TPout.swf?vid=9PE6xV962gU&auto=0"},{"title":"阿狸·信燕第四章","url":"http://static.video.qq.com/TPout.swf?vid=9Gco8adY96c&auto=0"},{"title":"阿狸·信燕最终版 番外+MV","url":"http://static.video.qq.com/TPout.swf?vid=P0010IM4yTN&auto=0"}]

标签: none

评论已关闭