如何在WPMU中插入javascript,object等代码
问题:无法插入javascript,object等代码
在Wordpres mu中是无法插入javascript,object等代码的,这些在Wordpress中是可以的,但在Wordpress mu中据说是基于安全考虑而屏蔽了。这样就导致无法插入很多网站的wadge以及flash,比如flickr的图片展示,youtube的视频等等。
其原理也就是在提交内容的时候,使用了filter函数将如script、object等关键字过滤掉而已。
解决方案1:直接修改代码
可以通过修改代码的方法来解决此问题,需要修改的文件是/wp-include目录下的kses.php文件,在这个链接中有详细的说明。
方法一是将过滤的代码注释掉。这样会导致所有的文章和注释都能够使用诸如<script>和<object>等标签。但将这些开放给注释用户会存在潜在的隐患。
方法二是添加全局变量$allowedposttags的值,添加你所需要启用的标签。这样将只对提交的文章启用标签。这篇文章专门说明这个问题,可读性更强。
不推荐这个方法,如此修改的地方多了需要专门的记录,每次升级以后还需要验证代码的有效性(代码的结构有可能变化),然后需要重新修改。总得来说原则是能使用插件就尽量不修改源代码。
解决方案2:使用有针对性的专门插件
可以通过有针对的插件来解决该问题,比如要插入flickr的图片wadge就找flickr的插件或是图片插件,需要插入youtube的视频就找youtube的插件或是视频插件。
坏处是这样的插件比较多,而且相当一部分是针对wordpress,筛选起来比较困难,水平也有点参差不齐。况且明明就是一件事情,却弄得有点头痛医头脚痛医脚,兼容性太差。
解决方案3:寻找通用的插件
所以需要找一款能够关闭对嵌入javascript、object等常用的关键字过滤的插件。
Widgetize-AnyHTML插件,让你能够在widget中嵌入标签,但只能在widget里,而且只支持一个AnyHTML Widget,不很实用。
All text allowed插件,让你能够在文章(post)和页面(page)中嵌入标签。在主页的注释中提到了会移除<p>标签的问题。
Unfiltered MU插件,让你能够在文章(post)和页面(page)中嵌入标签,经测试widget也可以。这个就是最终的解决方案。下载压缩包,解压后得到unfiltered-mu.php,如果要安装为全局插件则复制进wp-content/mu-plugins/目录,如果要逐个blog激活则复制进wp-content/plugins/目录。