博客关键词链接插件,完美支持中文和英文关键词


1,前言

在4月份时,为一个博客关键词链接插件(BM keyword link)修正了一些细节,也添加了支持中文关键词的功能。原先的发布页面看:为你的wordpress添加内链与外链的插件(完美支持中文) 。发布之后,也得到了一些关注。一直以来,反响都还是不错的,也没发现其它的Bug。

直到昨天jackly找到我,说发现了BM keyword link的Bug,就是容易跟其它插件有冲突,如跟WordPress Wiki插件就有冲突。“很简单。银河系这个词已经被WordPress Wiki这个插件定义了链接。结果keywordlink又插了一脚。在链接里加了span这些乱七八糟的。所以我觉得只要让keywordlink不干涉WordPress Wiki产生的链接就OK了。”

所以我开始试着修正这个Bug。

2,过程

我装上了WordPress Wiki,和BM keyword link一起启用。一开始的判断是BM keyword link里还存在Bug,就是匹配关键词时还存在问题。所以一开始修改这个,测试啊测试,还重新看了PHP的正则表达式,PHP如何匹配url/html等教程,折腾了好久,没成功。

只好作罢,可能是我看的正则表达式还不够多。没办法找到更好的匹配方式。试着停用了WordPress Wiki,用BM keyword link单独测试,用各种各样的条件尽力让BM keyword link出错,看那一步没匹配上。最后却发现一点问题都没。就是说BM keyword link本身的匹配关键词是没问题。

这倒是松了一口气,就是说纯粹是这两个插件有冲突,应该是插件执行顺序的问题。但不知执行的顺序的如何控制的。只好百度,Google搜啊搜,皇天不负有心人,原来是add_filter这个函数在作怪。呼,原来这么简单。

看原代码有这一行

add_filter('the_content','bm_keywordlink_replace_content',1);

改为:

add_filter('the_content','bm_keywordlink_replace_content',10);

最后一个参数改了,意思是数值越小,越早执行。改为10之后,就是让WordPress Wiki先运行,再运行BM keyword link。这个方法应该同样适同于其它有冲突的插件,试一下找add_filter这个函数,应该不会有错。add_filter的用法就去Google一下吧。

3,成果

名称:BM keyword link
作者:martin
中文修正版:柳城博客
发布页面:http://www.liucheng.name/?p=574
兼容:WordPress 2.3- 2.7
更新:2009-06-07
描述:为你的wordpress博客添加关键词的链接,更多的内链,更好的SEO! 给文章加上内部链接有利于增加搜索引擎收录。
性能:完美支持中文和英文关键词。
下载:本地下载(已更新=>http://www.liucheng.name/?p=789

安装方法:
1. 复制目录blog-mechanics-keyword-link-plugin到 /wp-content/plugins/(原先有安装过的请先删掉)
2. 在插件管理页激活插件
3. 若不再使用,直接停用或删除即可。

2009/06/07更新:
* 解决与WordPress Wiki插件的冲突问题。(2009/06/06更新)
* 汉化了部分内容。(2009/06/07更新)

2009/04/10 更新:
* 解决替换关键词已有链接的问题.文章中已有的链接将不会匹配.

2009/04/09更新:
1. 完美支持中文关键词链接,增加选项(For zh_CN)分别区分英文与中文关键词。勾选后也可部分匹配英文单词
2. 修正编辑中文关键词时乱码问题。*注意,这里去掉了原作者对关键词的加密与解密,因为此功能只对英文有效,中文导致乱码。
3. 修正导出文件时中文字符乱码问题。

详细的用法请看:为你的wordpress添加内链与外链的插件(完美支持中文)

有其它任何问题或建议,请留言。


41条回应:“博客关键词链接插件,完美支持中文和英文关键词”

  1. 请问这个插件可以代替simple tag吗?
    因为我想要用相关日志这个功能,但又不希望重复使用有相同功能的插件

    • @万戈,

      simple tag是自动的,BM keyword link是半自动的。

      我就是不喜欢用simple tag才用BM keyword link的。这个要看你用过之后喜欢那个才知道了。

      相关日志我是用Similarity这个插件实现的。

  2. […] 用了3个多月了,总体感觉很好,但每次都要为一些关键词添加链接的时候,让我犯难了,麻烦呀!所以就搜索了下内链和外链的插件,比较之后选择了Blog Mechanics Keyword Link。但Blog Mechanics Keyword Link插件判断英文关键字的标准是:左右都会有空格,只匹配全单词,不会部分匹配。对中文支持很是不好。还好有中国爱好者修正了其代码,让它可以很好的支持中文关键字的内外链接。(中文版地址) […]

  3. 我用了导入的功能后,插件无法使用,增加任何关键词时都提示:
    Existing keyword has been updated

    • 好.我知道了.
      你先用phpmyadmin登陆你的数据库.运行下面的语句就可以删掉所有关键词.这里就能正常使用了.

      SELECT * FROM `wp_options` WHERE `option_name` LIKE ‘bm_keywordlinkoption’

    • 我再更新一下.解决这个BUG.
      你现在重新下载.我已经更新了.再重新导出和导入看看.应该没问题.
      注:如果导出中文关键词有乱码问题,是正常的.乱入后应该就正常了

            • 我新编辑了一个文件,按照导出的文件格式,先清空了数据库,然后不增加任何记录,直接导入,结果导入的内容中文部分为乱码,然后刷新页面后,页面显示无记录,然后到数据库中看,是有记录的。

  4. 请问按照说明加了你给点css怎么没有效果,是没有加对吗?谢谢

    • CSS没效果。是因为你没有把下面两句加到你的CSS文件吧
      .bm_keywordlink { text-decoration: underline; }
      .bm_keywordlink_affiliate { font-weight: bold; }

  5. 又出现了些疑问:
    1、我加了100多个关键词,为什么不是所有的关键词都出来链接,是否是单页中有链接的上线?
    2、关键词的增加是否有上限?

      • 这种情况的演示可以看:http://metro.sitemix.jp/blog/line-5/
        我每个站点都加了关键词的链接,但事实是不是所有的都可以有链接,很奇怪。

  6. 插件很好哦,但是关键词好像只能识别到3个,能全文都匹配到吗?

  7. 请问下老师 你的mechanics-keyword-link 这个插件一个问题
    我更换了新域名 以前是cn域名 现在换成com的 我里面有几百条cn衔接记录 我到哪里把cn改成com的哈 一个一个改 改死人呢啊

    • 我的插件不叫这个哦. wp keyword link才是的.
      你用的这个不知有没有导入导出功能, 有的话, 就导出后改一改再导入..
      不行的话就去数据库改啊. 也很方便的. [抱拳]

      • 数据库找不到哦 不知道是哪个 还有我把那个数据导出来了 更改后再导入就乱码了 插件就提示错误了 我恢复了数据库才没了错误 闷闷

        • 你这个是旧版的, 没那么好用了..
          你导出后, 升级到最新版的.. 再按最新版的格式来导入就不会有问题了.
          格式不同的,要注意. 另外,文件要另存为utf-8. 不然会乱码的, 旧版的不支持utf-8