软件兔 2007-5-14 09:22
文内关键字替换插件
[b]基本实现:[/b]
因为论坛上的朋友是要[url=http://blog.wyshen.com/search.asp?q=%E6%8F%92%E4%BB%B6]插件[/url],所以要尽量少改源码,另外,我打算写得尽可能与Z-Blog无关,这样一来以后Z-Blog升级时就不需要跟着改,二来把这个[url=http://blog.wyshen.com/search.asp?q=%E6%8F%92%E4%BB%B6]插件[/url]拿到别的Blog甚至别的CMS系统中直接就可以用,所以我用了独立的数据库+JS脚本来实现,完全不与Z-Blog的数据库发生交互。
另外用JS实现还有个好处,就是设的关键字再多也不会影响到服务器端生成时的速度,而且,新添加了关键词后也不必重建全部文件。这使[url=http://blog.wyshen.com/search.asp?q=%E6%8F%92%E4%BB%B6]插件[/url]的灵活性大大提高。
还有一个好处:就是写的时候我顺便多实现了一点功能,就是根据节点的类名(ClassName)来替换关键字,这样一来,不止文章内容可以替换,只要是在后台设置了相应的类名页面中的任意部分都可以替换——譬如用户留言等。
当然,有得必有失,降低服务器压力的同时也有缺点需要说明一下:关键字替换因为是通过脚本实现的,所以替换结果只有用户看得到,搜索引擎是看不到的,所以不能靠这个[url=http://blog.wyshen.com/search.asp?q=%E6%8F%92%E4%BB%B6]插件[/url]来做SEO。(要想让搜索引擎也看到,就只能修改代码,这样一来以上的优势就得全抛弃了)
[b]用法:[/b]
[list=1][*]把[url=http://blog.wyshen.com/search.asp?q=%E6%8F%92%E4%BB%B6]插件[/url]下载后解压缩到Z-Blog的Plugin文件夹中。([url=http://blog.wyshen.com/search.asp?q=%E6%8F%92%E4%BB%B6]插件[/url]需要对自己所在的目录有写权限,那些象我一样变态到一个文件夹一个文件夹(甚至是一个文件一个文件)地设权限的朋友得把KeyWords这个文件夹的写权限开了。)[*]把TEMPLATE文件夹中[b]default.html single.html catalog.html search.html[/b]页中</body>标签前加上如下一行脚本。
<script language="javascript" type="text/javascript"src="<#ZC_BLOG_HOST#>/PLUGIN/KeyWords/KeyWords.js"></script>[*]到后台重建一次文件就可以了。(不用每次加完关键字都重建)[/list][b]简单说明:[/b]
[list=1][*]对象类名是指要应用关键字替换的区块的类名称,如果想为多个不同的区块替换,可以用半角逗号隔开多个类名。[*]填写时关键字与对应URL不可为空,任一部分为空则此条记录不添加。[*]删除某条记录时只需要清空该条记录中的关键字后提交即可。[*]新窗口为空时窗口打开按所在页的默认值,为"_blank"强制新窗口打开,"_self"强制当前窗口打开,除此之外Target支持的其它值都可手动输入。[*]各条目中不可输入“>'|"<”等特殊符号,如果必需输入,请用相应的全角符号代替。[*]说明中可用“\n”进行换行。[*]替换后的链接类名是"keylink",大家可以在CSS中给这个类定义特殊效果,以区分替换的链接跟普通链接 。[/list][b]演示地址: [url=http://blog.wyshen.com/post/192.shtml]http://blog.wyshen.com/post/192.shtml[/url][/b] (我把"插件"设成了关键字)
[b]下载地址:[/b]
skywcc 2007-5-14 09:28
虽然大多数人都是为了搜索引擎优化才想添加这个功能的.
不过有得必有失,谢谢LZ,辛苦了!:handshake
Google 2007-5-14 09:50
同楼上,确实多数人是为了SEO才想添加这个功能
如果考虑蜘蛛抓取,干脆手动添加算了,而且手动添加不影响页面生成速度。
缺点就是麻烦点。
:D
angelwing 2007-5-14 09:52
不错~可以使SEO效果好~
软件兔 2007-5-14 09:58
我一开始想了以搜索引擎优化为主要目的了, 但后来想了想, 当添加一定的关键字后重建全部文件时对服务器性能的影响会很明显, 而且每添加或删除一个关键字后都需要全部重建一遍文件, 实在太痛苦了~:L
所以就干脆写成脚本调用的了.
Google 2007-5-14 10:00
[quote]原帖由 [i]angelwing[/i] 于 2007-5-14 09:52 发表
[color=red]不[/color][color=red]错~可以使SEO效果好[/color]~ [/quote]
:)可惜这插件蜘蛛抓取不到。
Google 2007-5-14 10:07
WP有类似插件,不知它能否比较好的解决以上几个问题
:)
hhb520 2007-5-14 17:54
关键字很重要
我每天有90%是来自搜索引擎的。[url]http://hhb.zhitx.com/[/url]
haphic 2007-5-15 01:31
这个插件相当精巧啊~ 我喜欢这样的不惊动内核的插件. 谢谢软件兔, 高手啊! 尽管做成在重建文件时替换字符的形式在修改代码上并不会比Totoro更复杂, 但正如楼主在5楼说的, 关心SEO的朋友肯定少不了在关键字上改来改去, 不累死也得累坏.
不过, [color=Navy]这个插件现在对SEO没有任何用处[/color], 请那些为SEO而作网站者别对此抱有幻杨. [color=Navy]如果真想为了SEO, 那就好好求求楼主, 让他为这个插件增加一个在重建文件时替换关键字的方案[/color], 至于选择追求好玩, 还是追求累死累活, 那就是使用者自己的问题了...
By the way, 一涉及 SEO, 果然 "Google" 最热心. :lol
[[i] 本帖最后由 haphic 于 2007-5-15 01:36 编辑 [/i]]
double 2007-5-15 01:44
代表什么中央。表扬一下你。
不過不知道是不是和繁體轉換那個js代码有冲突。我的blog上實現不了。
[[i] 本帖最后由 double 于 2007-5-15 01:50 编辑 [/i]]
软件兔 2007-5-15 08:49
谢谢楼上两位的鼓励~
感谢人民, 感谢Party, 感谢CCTV…… 没有Party就没有新插件...
PS: double加上插件后是不是不没在后台设置要替换区块的类名呀? 你的应该是"entry", 如果用我默认的ClassName是不行的.
double 2007-5-15 10:08
ok.果然如你所說。現在好了。謝謝。
软件兔 2007-5-15 11:59
……
使用说明的第一条就是关于类名的呀:L
likk 2007-5-16 00:02
试试看去。应该不错。
likk 2007-5-16 00:45
可以实现,但是IE有错误提示
没有gravatar头像的页面提示是 参数无效。 具体链接:[url]http://www.likk.com/blog/post/979.html[/url]
有gravatar的页面提示是....为空或不是对象 具体链接:[url]http://www.likk.com/blog/post/976.html[/url]
软件兔 2007-5-16 10:38
[quote]原帖由 [i]likk[/i] 于 2007-5-16 00:45 发表
可以实现,但是IE有错误提示
没有gravatar头像的页面提示是 参数无效。 具体链接:[url]http://www.likk.com/blog/post/979.html[/url]
有gravatar的页面提示是....为空或不是对象 具体链接:[url]http://www.likk.com/blog/[/url] ... [/quote]
看过你的代码了,似乎不是关键字替换脚本有问题,报错的行数是第182行,而关键字替换的这个脚本一共才57行:L
另外 [url]http://www.likk.com/blog/post/980.html[/url] 这个页面中所有"教育"也都替换了, 如果是替换脚本有问题的话, 出错后就停了, 不可能全部替换的.
估计是跟其它某个脚本(例如为链接显示图标的脚本)有冲突, 如果可能的话上下调整一下各个脚本的先后顺序也许能行
wolfit 2007-5-16 17:43
似乎不错!做个记号
xiaoyi0451 2007-5-21 10:53
太感谢了,这个插件很好玩
xiaoyi0451 2007-5-21 11:25
我全部都是按步骤来的,为什么我的页面没有显示关键字呢?
软件兔 2007-5-22 08:37
至少留个地址我才能看一下是什么问题呀,到处找不到你BLOG的地址……
volfmath 2007-6-3 09:47
Microsoft JET Database Engine error '80004005'
Could not delete from specified tables.
/plugin/KeyWords/index.asp, line 125
volfmath 2007-6-3 09:57
这个错误是提交关键此的时候发生的 怎么搞的呢?
软件兔 2007-6-4 09:09
我试了好多办法, 一直没能见到与你说的类似的问题.
如果方便的话, 请告诉我你在表中加了什么关键词, 以及相关的URL
一个简单点的办法就是干脆重新下载插件, 然后把数据库覆盖.
valve 2007-6-9 21:09
:kiss: 等待很久的插件啊:kiss:
感谢 软件兔 的奉献!
下载测试一下先