WordPress 2.5 标签重复问题解决方案

从 WordPress 2.3 开始,WordPress 加入了标签(Tag)功能。但是,WordPress …

从 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 );

这样,就应该解决了这个问题。

类别:WordPress经验

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT