2007年10月6日 11:41 pm

怎样在 WordPress Mu 多用户版的文章里使用Javascript, object 等代码

WordPress Mu
从自己的原 WordPress 导入了所有的文章到 WordPress Mu 里,意外发现所有的YouTube的视频全不见了。而且自己怎么加也加不上,每次将<object>..</object> 代码贴到文章,他们保存就会意外地消失了。同样的事情也发现在我想添加 <script>...</script> 脚本代码到文章的时候。我猜想可能由于是MU的面向大众作者的特殊性,程序员从安全性的考量将一些有危险性的代码从文章和评论里禁止了。但,我自己的多用户WordPress MU 只是我自己用,应该不会有什么安全担心,而且我真的需要将这些 YouTube 视频放在博客里。

于是我开始找解决之法。WordPress Mu 的官方支持论坛没有什么正式的方法。有些人建议下载插件将Javascript放到侧栏里,这点肯点是可行的:因为我目前用的 K2 主题就有文本代码小工具可用。但我需要将他们放在文章里。没办法,只好改动源代码了。

要改的文件在 /wp-include 目录里,文件名叫 kses.php。

最快捷的改动就是将该文件的最后两行代码隐掉:

add_action(’init’, ‘kses_init’);
add_action(’set_current_user’, ‘kses_init’);

但是,这样并不是我推荐的。因为这样,整个 kses.php 功能都没有了,也就是说所有的文章、评论都有可能含有破坏性的代码。所以,我还是愿意将一些我自己需要的代码加到被允许的范围内,而不是全部放过。所以,最好是改动 $allowedposttags 这个全局变量,这样只有文章的保存会受影响而评论照样会被过滤。

大概在 kses.php 的 184 行,我开始添加下列代码来开放 <script><object>

//added by WebGuru on 2007-10-06
’script’ => array(
‘type’ => array(),
’src’ => array()
),
‘noscript’ => array(

),
‘object’ => array(
‘height’ => array(),
‘width’ => array(),
‘type’ => array(),
‘data’ => array(),
‘allowfullscreen’ => array(),
‘id’ => array()
),
‘param’ => array(
‘name’ => array(),
‘value’ => array()
),
‘embed’ => array(
‘width’ => array(),
‘height’ => array(),
‘type’ => array(),
’src’ => array()
)

有了这些,我基本上解决了在MU 文章里贴 YouTube 视频和 Javascript 脚本的问题。但我是不满意这种修改核心代码的做法,如果你们能找到一些更好的方法,或者写个插件什么的来解决这个问题,请让我知道,先谢了。

My English Post URL: How to enable or use Javascript and Flash embed in WordPress MU

标签关键词:
相关网络话题:

相关文章

文章导航

【前一篇】: 理财软件 Quicken 2008 Home&Business 安装记 »
【后一篇】: 怎样将微软 Microsoft Money的财务数据转换导入 Quicken »

8 个评论

  1. leiguaner on 17 Oct 2007 at 7:19 am #

    mu版本的,侧栏wigdt都没有办法使用这些代码的,比较郁闷

    [ Reply ]

  2. WebGuru on 18 Oct 2007 at 12:07 am #

    我的英文mu 博客使用的是 k2 主题,在侧栏使用Javascript是没有问题的。

    [ Reply ]

  3. bressonlee on 23 Oct 2007 at 10:51 pm #

    按照您的方式修改了,但是系统出现错误讯息,整个网站也无法运作,不知问题出在那边。

    Parse error: syntax error, unexpected T_STRING, expecting ‘)’ in /home/hsphere/local/home/a551/mass-age.com.tw/wpmu/wp-includes/kses.php on line 185

    Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/hsphere/local/home/a551/mass-age.com.tw/wpmu/wp-includes/kses.php on line 187

    [ Reply ]

  4. WebGuru on 23 Oct 2007 at 11:33 pm #

    你的第一个问题是要注意括号()的完整性,即有开,也要有关。另外,不要使用中文全码的小括号。

    第二个问题看是不是你的 “=> ” 使用上有问题,也可以注意一下是不是用了中文的符号。

    [ Reply ]

  5. 给博客升级到 WordPress MU 的一些体会 | 【超凡博俗 之 数码人生】 on 04 Nov 2007 at 12:12 am #

    [...] 1.2.5a版本里,我改过一些代码文件,象用来注册的文件以防被spam,还有就是如我前文所提的那个 wp-includes/kses.php [...]

  6. TanCee on 16 Oct 2008 at 5:54 am #

    文章里面咋用JavaScript~

    [ Reply ]

  7. NakedFish - 裸鱼 » 解决WordPress MU撰写文章时过滤掉HTML的问题.. on 15 Nov 2008 at 3:16 am #

    [...] 把博客从WordPress和升级到WordPress MU后,导入以前的数据发现能正常显示。但修改某日志后发现WP MU不能显示日志内容中的HTML标签。我记得WP是可以使用HTML标签的,于是写新日志测试,结果一样:HTML标签不能显示,从MYSQL中直接添加含HTML的内容能正常显示。看来是在日志提交后被过滤了。。 在网上找了N久,也在WordPress中文社区发帖求助,都没结果。还好找到这篇文章,按方法搞定。。 [...]

  8. Wordpress MU plugin: Widgetize-AnyHTML&Additional Tags | i番茄 on 26 Nov 2008 at 3:49 am #

    [...] 怎样在 WordPress Mu 多用户版的文章里使用Javascript, object 等代码 [...]

Trackback URI | Comments RSS

阅读完毕,有话要说?请多指教:

    • 赞助链接

    • 最新评论

    • 网站功能

    • 免责声明

      Blog Logo欢迎光临超凡工作室的中文网络日记【超凡博俗】之 IT 博客系列【数码人生】,由WebGuru[网络精灵]维护管理 Powered by SuperIT Web Studio Copyright ©2007 All rights reserved.

      该博客网站上所有文章除特别注明外都是由 WebGuru 个人著作,并不代表 WebGuru 所在公司及所从属的协会等的观点。如果,你认为本人文章所涉及的内容有版权侵犯或名誉损害之嫌,请及时写信通知,我会尽快审核并作出相应撤文行动。同样,如果你想要引用本博客站的有关文章,请保留全文并注明出处!

      Powered By
      SuperIT Web Studio