50 12345
发新话题
打印

文内关键字替换插件

文内关键字替换插件

基本实现:

因为论坛上的朋友是要插件,所以要尽量少改源码,另外,我打算写得尽可能与Z-Blog无关,这样一来以后Z-Blog升级时就不需要跟着改,二来把这个插件拿到别的Blog甚至别的CMS系统中直接就可以用,所以我用了独立的数据库+JS脚本来实现,完全不与Z-Blog的数据库发生交互。

另外用JS实现还有个好处,就是设的关键字再多也不会影响到服务器端生成时的速度,而且,新添加了关键词后也不必重建全部文件。这使插件的灵活性大大提高。

还有一个好处:就是写的时候我顺便多实现了一点功能,就是根据节点的类名(ClassName)来替换关键字,这样一来,不止文章内容可以替换,只要是在后台设置了相应的类名页面中的任意部分都可以替换——譬如用户留言等。

当然,有得必有失,降低服务器压力的同时也有缺点需要说明一下:关键字替换因为是通过脚本实现的,所以替换结果只有用户看得到,搜索引擎是看不到的,所以不能靠这个插件来做SEO。(要想让搜索引擎也看到,就只能修改代码,这样一来以上的优势就得全抛弃了)

用法:
  • 插件下载后解压缩到Z-Blog的Plugin文件夹中。(插件需要对自己所在的目录有写权限,那些象我一样变态到一个文件夹一个文件夹(甚至是一个文件一个文件)地设权限的朋友得把KeyWords这个文件夹的写权限开了。)
  • 把TEMPLATE文件夹中default.html single.html catalog.html search.html页中</body>标签前加上如下一行脚本。
    <script language="javascript" type="text/javascript"src="<#ZC_BLOG_HOST#>/PLUGIN/KeyWords/KeyWords.js"></script>
  • 到后台重建一次文件就可以了。(不用每次加完关键字都重建)
简单说明:
  • 对象类名是指要应用关键字替换的区块的类名称,如果想为多个不同的区块替换,可以用半角逗号隔开多个类名。
  • 填写时关键字与对应URL不可为空,任一部分为空则此条记录不添加。
  • 删除某条记录时只需要清空该条记录中的关键字后提交即可。
  • 新窗口为空时窗口打开按所在页的默认值,为"_blank"强制新窗口打开,"_self"强制当前窗口打开,除此之外Target支持的其它值都可手动输入。
  • 各条目中不可输入“>'|"<”等特殊符号,如果必需输入,请用相应的全角符号代替。
  • 说明中可用“\n”进行换行。
  • 替换后的链接类名是"keylink",大家可以在CSS中给这个类定义特殊效果,以区分替换的链接跟普通链接 。
演示地址: http://blog.wyshen.com/post/192.shtml (我把"插件"设成了关键字)

下载地址:
附件: 您所在的用户组无法下载或查看附件

TOP

虽然大多数人都是为了搜索引擎优化才想添加这个功能的.
不过有得必有失,谢谢LZ,辛苦了!

TOP

同楼上,确实多数人是为了SEO才想添加这个功能

如果考虑蜘蛛抓取,干脆手动添加算了,而且手动添加不影响页面生成速度。
缺点就是麻烦点。

TOP

不错~可以使SEO效果好~
要温度,更要风度!www.fengdu.org

TOP

我一开始想了以搜索引擎优化为主要目的了, 但后来想了想, 当添加一定的关键字后重建全部文件时对服务器性能的影响会很明显, 而且每添加或删除一个关键字后都需要全部重建一遍文件, 实在太痛苦了~

所以就干脆写成脚本调用的了.

TOP

引用:
原帖由 angelwing 于 2007-5-14 09:52 发表
错~可以使SEO效果好~
可惜这插件蜘蛛抓取不到。

TOP

WP有类似插件,不知它能否比较好的解决以上几个问题

TOP

关键字很重要

我每天有90%是来自搜索引擎的。http://hhb.zhitx.com/
http://www.zhitx.cn/

TOP

这个插件相当精巧啊~ 我喜欢这样的不惊动内核的插件. 谢谢软件兔, 高手啊! 尽管做成在重建文件时替换字符的形式在修改代码上并不会比Totoro更复杂, 但正如楼主在5楼说的, 关心SEO的朋友肯定少不了在关键字上改来改去, 不累死也得累坏.

不过, 这个插件现在对SEO没有任何用处, 请那些为SEO而作网站者别对此抱有幻杨. 如果真想为了SEO, 那就好好求求楼主, 让他为这个插件增加一个在重建文件时替换关键字的方案, 至于选择追求好玩, 还是追求累死累活, 那就是使用者自己的问题了...

By the way, 一涉及 SEO, 果然 "Google" 最热心.

[ 本帖最后由 haphic 于 2007-5-15 01:36 编辑 ]

TOP

代表什么中央。表扬一下你。
不過不知道是不是和繁體轉換那個js代码有冲突。我的blog上實現不了。

[ 本帖最后由 double 于 2007-5-15 01:50 编辑 ]
www.doublebao.cn 不想錯過,所以記錄。

TOP

谢谢楼上两位的鼓励~

感谢人民, 感谢Party, 感谢CCTV…… 没有Party就没有新插件...

PS: double加上插件后是不是不没在后台设置要替换区块的类名呀? 你的应该是"entry", 如果用我默认的ClassName是不行的.

TOP

ok.果然如你所說。現在好了。謝謝。
www.doublebao.cn 不想錯過,所以記錄。

TOP

 50 12345
发新话题