快速插入优酷视频改为 iframe 方式兼容移动设备

» 2013-07-12 WordPress 59条评论

现在的 WordPress 中文版内置了“使用 WordPress 的 Embed 功能快速插入优酷视频”的功能:只要在写文章时,独占一行粘贴优酷视频地址就可以自动调用次视频。

例如:我在下一行独占一行插入 http://v.youku.com/v_show/id_XNTgxNzI3MDcy.html 这个优酷视频地址,就可以自动调用优酷视频了。

(顺便看看《晓说》吧,还是有点意思)
http://v.youku.com/v_show/id_XNTgxNzI3MDcy.html

但是这是用 Embed 的,PC端没问题,手机浏览器因为不支持 Flash 所以是无法显示和播放视频的,而现在提供的 iframe 方式插入的视频就支持手机。

下面说说如何实现:

『使用 WordPress 的 Embed 功能快速插入优酷视频』改为以 iframe 方式调用的方法

有点绕口,囧。其实很简单
1. 确定所用 WordPress 是中文版(好像其他语言版本也行,如果有错误提示就把 wp_embed_unregister_handler( 'youku' ); 删除即可)
2. 就是把下面的代码扔进所用主题的 functions.php 里面(注意:代码要放在 <?php ?> 里面)

/**
 * 『使用 WordPress 的 Embed 功能快速插入优酷视频』改为以 iframe 方式调用
 *  by zwwooooo | zww.me
*/
// 移除原来 WordPress 中文版内置的“使用 WordPress 的 Embed 功能快速插入优酷视频”
wp_embed_unregister_handler( 'youku' );
// 改用 iframe 方式
function wp_iframe_handler_youku( $matches, $attr, $url, $rawattr ) {
	// If the user supplied a fixed width AND height, use it
	if ( !empty($rawattr['width']) && !empty($rawattr['height']) ) {
		$width  = (int) $rawattr['width'];
		$height = (int) $rawattr['height'];
	} else {
		list( $width, $height ) = wp_expand_dimensions( 480, 400, $attr['width'], $attr['height'] );
	}
	$iframe = '<iframe width='. esc_attr($width) .' height='. esc_attr($height) .' src="http://player.youku.com/embed/'. esc_attr($matches[1]) .'" frameborder=0 allowfullscreen></iframe>';
	return apply_filters( 'iframe_youku', $iframe, $matches, $attr, $url, $ramattr );
}
wp_embed_register_handler( 'youku_iframe', '#http://v.youku.com/v_show/id_(.*?).html#i', 'wp_iframe_handler_youku' );

PS:其他视频网站可以照葫芦画瓢改下代码就行了。

最近好忙啊,也爽!

撤~洗澡睡觉去~

zww
or
oooo

“快速插入优酷视频改为 iframe 方式兼容移动设备”有59条评论

  1. iframe方式不能被收录

    1. zwwooooo says:

      @软件小品
      看我最新文章。

  2. iframe 这个似乎是不推荐的

    1. zwwooooo says:

      @我的名字叫麒
      可以2种同时使用,看我最新篇

  3. Normal says:

    其实用anyplayer这个插件更方便

    1. zwwooooo says:

      @Normal
      其实插件都很方便 - -

  4. 折子戏 says:

    这么厉害,似乎不错的样子,不过我博客视频就少了,音频到是挺多,暂时够用!MAKE,随时回来取精!

    1. zwwooooo says:

      @折子戏
      又写了一篇了,兼容性好点。

  5. 视乎不错哦,哈哈哈···

  6. bbis says:

    那是不是说改改代码,就可以直接应用到百度网盘的绝对连接地址上

    1. zwwooooo says:

      @bbis
      其实这段代码就是从url获取id,然后套用格式而已,具体应用就看你了。

  7. kn007 says:

    不错,学习了。。。

  8. ShunYea says:

    我的是wp3.5.2版,自己写的主题,为啥测试无效啊?还是原来默认的发一个连接就自动加载Embed方式。

    1. zwwooooo says:

      @ShunYea
      WordPress 3.x 中文版内置。

    2. ShunYea says:

      @zwwooooo
      没听懂,内置就是说不需要你上面那些代码吗?我试过直接粘优酷视频,PC是OK的,但是手机仍然不支持……求教

    3. zwwooooo says:

      @ShunYea
      内置的是 Embed 方式。

  9. 如果能屏蔽广告就好了。

    1. zwwooooo says:

      @欲思博客
      好吧,这不是这篇文章的目的。

发表评论

昵称 *

网址

B em del U Link Code Quote