为了把一首wma放到Blog上,我安装了CoolPlayer
这个插件。
这真是个功能强大的插件,它支持Flash、QuickTime、Real Media、Windows Media等各种媒体文件,还支持YouTube和Google Video的视频,还有图片文件和pdf文件,对于不支持的文件比如ZIP文件,插件会直接给出链接提供下载。对于媒体文件,插件也会在播放界面的下方给出下载链接,方便感兴趣的访问者直接下载该文件。插件支持同时指定多个文件。插件的特色是对各种浏览器都支持的非常好,比如IE、Firefox、Opera。当然,这个庞大的功能自然会使用js文件。唉,我的Blog页面上载入的js文件又增多了。
因为wma文件是音频文件,播放时不需要画面的部分。我查了一下,微软的网站上说把高度指定为40就刚刚好。我发现插件对文件名的提取有点问题,我的文件名里有个减号,插件就只显示了减号后面的字符。解决的办法很简单,只要用<a hre f="url">歌曲名</a>就可以了,插件会自动从中提取出URL,并在播放界面下面显示出指定的歌曲名。
发现了一个小问题,插件在feed里也直接原样输出了,并没有为feed做特殊的处理。因为feed里没有载入相关的js和CSS,所以显示出错。Audio Player插件里就考虑到feed的问题,它的选项中可以选择在feed中这个部分用什么内容进行替换。
CoolCode网站的插件都喜欢“遵守XML规范”。他的插件总是用"<>"而不用"[]"来包围标签名,CoolCode插件就是个典型的例子。这样做导致了一个问题:由于这不是XHTML标准中的标签,所以WordPress自带的可视化编辑器TinyMCE不认识他们,于是就会把他们自动清除掉。我也不知道为什么文章内容非要“遵守XML规范”,我觉得只要最终输出到浏览器的html代码遵循xhtml规范就可以了,我写的插件都用"[]"。WordPress本身在把文章内容保存到数据库的时候会自动清除<p>和<br />标签,它也不在乎什么XML规范,只要最终输出的时候再转换回来就可以了。
研究了一下TinyMCE,发现它是定义了一个标签格式字符串,然后用字符串来匹配各个标签。打开/wp-includes/js/tinymce/tiny_mce_gzip.php文件,定位到122行,把下面的代码填到字符串的尾部。
,coolplayer[autoplay<true?false|loop<true?false|charset|height|width]
这样TinyMCE就可以识别<coolplayer>标签了。当然了,在可视化编辑器里无法看到最终的显示效果,不过现在TinyMCE已经认识这个标签了,不会再当作不认识的标签自动清除了。直接可视化编辑器里敲入<coolplayer width="640" height="480" charset="GBK" autoplay="false" loop="true"></coolplayer>,然后发布就可以了。
XHTML是XML的子集,也是用特定DTD定义一套XML标签,cool*插件执着的遵守着一个"不存在"的规范
第122行打开后是空的。能否具体说明一下在哪些字符后呢?
我用的是WordPress 2.0.4,可能和WordPress 2.1里的不一样。有个
if ( current_user_can('unfiltered_html') ) $valid_elements = '...' else $valid_elements = '...'的结构,添加在第一个$valid_elements的字符串里。虽然按照你的方法加了一句话,但是coolplayer标签还是被清掉了。万不得已之下,拷了你的tiny_mce_gzip.php过去覆盖了下,就用起来了,希望你不要介意!
GOD! tiny_mce_gzip.php是个PHP文件呀,你是咋拷的?难道黑了我的服务器?555~~
CoolPlayer 和 CoolCode 插件都支持 [] 标签,只是这个方括号标签在 tiny_mce 这个编辑器里也不是很好用的。
嗯,嗯,果然是这样,可以用中括号[]。谢谢andot大大。
中括号在TinyMCE里只是没有可视化而已,呃,也没啥坏处,不是吗?
改天研究下TinyMCE,解决下显示的问题,hoho
不是没有可视化的问题,是标签里的回车会被改为 <br />,这样对于 Coolplayer 插入多个媒体就有问题了,CoolCode 插件也是这样,TinyMCE 会把标签里的代码都变成 HTML 格式的,这样子 CoolCode 就不能正确分析代码了。
呃,貌似Coolplayer和CoolCode都是利用0级part_one和5000级的part_two做替换工作,避免了位于默认10级的wptexturize和wpautop的干扰。Coolplayer插件应该不会有问题,因为在part_one里,回车还没被替换成<br />呢。CoolCode插件就不行了,那么多代码,TinyMCE会给替换得乱七八糟的。
CoolPlayer 已经升级到 9.0 了,这个版本对 TinyMCE 支持的很好了。而且还增加了选项面板。还有相当多改进的地方。