从 WordPress 2.3 开始,WordPress 加入了标签(Tag)功能。但是,WordPress 的标签没有良好的接口,使用起来并不方便,这一状况直到 WordPress 2.5.1 也没有得到很好的解决。对于中文用户而言,其中最为麻烦的一个问题就是,标签总是被重复添加,尤其是在使用标签缩略名(Tag slug)的时候。
标签重复问题
举例本站有一个标签叫“精彩主题”,缩略名为“themes-list”。但是如果你在书写新的文章的时候,在WordPress 撰写文章面板里直接添加了标签“精彩主题”,当你保存文章的时候,就发现标签的缩略名为“%E7%B2%BE%E5%BD%A9%E4%B8%BB%E9%A2%98”,这是“精彩主题”四个字所对应的UTF8 编码。
这时,你有了两个“精彩主题”标签,对应两个标签缩略名:一个对应容易看懂的英文“themes-list”,一个对应不容易看懂的“E7%B2%BE%E5%BD%A9%E4%B8%BB%E9%A2%98”。
解决方案
这个问题已经有网友向 WordPress Bug 跟踪系统报告,编号6313,被称之为标签重复问题。mtekk 给出了相应的解决方案,并将在 WordPress 2.6 中正式修复这个问题。现在你可以通过修改以下两个文件来自己修复这个问题。
1. 打开 <WordPress>/wp-includes/taxonomy.php ,大约 746 行附近:
if ( '' === $term = sanitize_title($term) ) return 0; $where = $wpdb->prepare( "t.slug = %s", $term );
修改为:
if ( '' === $sanitized = sanitize_title($term) ) return 0; if ( 'post_tag' === $taxonomy ) { $where = $wpdb->prepare( "(t.slug = %s OR t.name = %s)", $sanitized , $term ); } else { $where = $wpdb->prepare( "t.slug = %s", $sanitized ); }
2. 打开 <WordPress>/wp-admin/wp-includes/taxonomy.php ,大约 136 行附近:
$tags_to_edit = join( ', ', $tag_names );
修改为:
$tags_to_edit = join( ',', $tag_names );
这样,就应该解决了这个问题。
-
1 如何快速合并WordPress网站中的标签
-
2 如何利用WordPress的类别前缀和标签前缀改进网站的SEO
-
3 3个办法教你移除WordPress网址中的类别前缀和标签前缀
-
4 下拉菜单形式显示 WordPress 标签(Tags)
-
5 WordPress 插件发布汇集 – 7月28日
-
6 WordPress Plugins – WordPress 插件列表 11月20日
-
7 WordPress Plugins – WordPress 插件列表 11月2日
-
8 如何添加 WordPress 2.3 标签到你使用的主题 – 第二部分
-
9 WordPress Plugins – WordPress 插件列表 10月4日
-
10 WordPress Plugins – WordPress 插件列表 10月2日
修改为 空白?
呵呵,代码添加上了~
学习了,有技术含量
有技术含量不重要,关键是很有用 🙂
修改了,还是出现重复!
我也发现这个问题,还是没解决呀
Pingback: wordpress插件Simple Tags中文tag标签重复问题bug修正 | 睡到自然醒blog
非常感谢,这个问题搞的我十分困扰,因为我是最近新搬家到WP的,对WP只是久闻大名,没想到遇到这个棘手的问题。2个标签搞的一团糟,现在终于改好了。
欢迎到我的博客做客,美博园 http://allinfa.com/
今后还得多来兄弟们这里走走了。
再次感谢。
新版2.6的标签仍然有问题,昨天升级了一下,有出现了老问题,按照这个方法修改后,仍然不行。最后不得不恢复到2.5。。。
解决不了…!
在2.5.1是这样…升级到2.6还是这样…快疯了…
2.5.1的用这个方法成功解决了,不过升级到2.6以后发现问题依然存在,而且用这个方法也不管用了。。哎
Pingback: WordPress2.5标签bug-2.6升级失败-修改数据库密码的办法 | 读书生
不错不错
晕,看来还得继续寻找 2.6 的解决方案。
Pingback: 毒龙的世界
盼望2.6 的解决方案。谢谢
原来我很早就到过这了:)