WP Keyword Link 优先匹配较长关键词的修改

2012-05-06    分类:WordPress Plugins    2人评论271 views

在安装了WP Keyword Link 关键词自动链接化插件后,基本可以替代原先的aLinks了,不过还有一些小细节问题需要改进修复一下。

我们在添加关键词的时候,可能会遇到以下情况:

先添加了“链接化”,再添加了“自动链接化”作为关键词,当文中出现“自动链接化”时,首先被匹配的是链接化3个字,而不是”自动链接化“,结果下文以你为还有“链接化”3个字,所以被匹配到了,而“自动链接化”仅出现了1次,所以错过了仅有的一次匹配机会。

这个问题的思路:应该先匹配”自动链接化“,再去匹配“链接化”,因为长词出现的几率要比短词低的多。

不过似乎插件作者考虑到了这个问题,在标签替换的功能中确实是按照标签文字的长度来进行排序处理的,而手工的关键词却只能按照录入顺序(这个坑爹了,如果我有50个关键词,我想在中间或者最上面插入一个关键词,这工作量无语了)

所以研究了一下代码(PHP属于还没入门的级别,边查资料边改),发现在标签的代码部分有一个自定义排序用来按照文字长度进行排序。于是依样画葫芦,添加了一个用于普通手工添加的关键词的自定义排序函数,并在循环匹配开始前,对数组先进行排序。

下面是添加的代码:

首先在大约617行的

if ($links)

后添加

uksort($links, "my_sort_by_len_for_keywords");

然后在给tags用的根据关键词长度排序函数后面,再加一个

#### 按长度排序 for 关键词(关键词和标签匹配的函数略有区别) Add By Steve Luo
function my_sort_by_len_for_keywords($a, $b){
	if ( $a == $b ) return 0;
	return ( strlen($a) > strlen($b) ) ? -1 : 1;
}

简单的修改就实现了一个说小不小说大不大的细节功能,不过对于我这样的初学者来说还是花了不少功夫的。
另外:开启了“自动把文章的标签当作关键词”后,会出现原有链接被破坏的情况,这个问题自己研究了半天还没有结果,只能等高人来解决了。

转载请注明:摩登坊 » WP Keyword Link 优先匹配较长关键词的修改

继续查看有关 的文章

2访客评论

  1. 不知道为何我修改之后 出现错误,博主能给你修改过的文件给我发一份吗,或者共享到您的文章里,谢谢了

    木风11-23 17:41
  2. 楼上同求~ 发一份到我邮箱 谢谢。

    sinsky09-03 08:41

我来说说

*

*

取消