WordPress 是世界上最受欢迎也是最流行的博客系统,不过 WordPress 在中文支持上还存在不少问题,比如 WordPress 中文标签链接打不开,提示“404 页面未找到”。
产生中文 TAG 标签链接无法打开的原因在于 WordPress 不支持中文的编码。之前本博客分享过修改 WordPress 程序代码的方式实现修复这个问题的方法(详见 “wordpress中文标签出现404错误的解决办法”一文),不过这种方法有两个弊端,一是每次 WordPress 升级后又要重新修改文件很不方便,二是没能决绝中文标签的翻页问题。
今天“偶然”找到了一个插件(其实找了很久...),终于彻底地解决了这个问题!
插件名称:IIS Chinese Tag Permalink
插件地址:https://wordpress.org/plugins/iis-chinese-tag-permalink/
遇到了同样问题的朋友,直接安装上述插件就行了,如果有“插件强迫症”不想安装插件的,可以直接把以下这段代码扔到主题的 functions.php 中!
- /*
- Plugin Name: IIS Chinese Tag Permalink
- Plugin URI: http://blog.bossma.cn/php/in-iis-wordpress-chinese-tag-permalinks-plugin/
- Description: In IIS, wordpress use Chinese Tag permalink
- Author: BOSSMA.CN
- Author URI: http://blog.bossma.cn/
- Version: 1.2
- */
- add_action('init', 'bossma_get_urf8_pathandurl');
- add_filter('get_pagenum_link','bossma_set_utf8_pagenumlink');
- add_action('parse_query','bossma_chinese_tag_encode');
- //iis encoding the url with GBK,but wordpress with utf-8
- function bossma_get_urf8_pathandurl() {
- $_SERVER['PATH_INFO']=iconv("GBK","UTF-8",$_SERVER['PATH_INFO']);
- $_SERVER['REQUEST_URI']=iconv("GBK","UTF-8",$_SERVER['REQUEST_URI']);
- }
- //urlencode for chinese tag
- //sometimes preg_match can not match the chinese correctly
- function bossma_chinese_tag_encode($query){
- if(isset($is_tag)&&$is_tag){
- if($query->query_vars['tag']!=''){
- $query->query_vars['tag']=urlencode($query->query_vars['tag']);
- }
- }
- }
- //for generate tag pagenum link
- //use utf8 encode
- function bossma_set_utf8_pagenumlink($result){
- $tag_index=stripos($result,"/tag/");
- $link_len=strlen($result);
- if($tag_index!==false){
- $link_base=substr($result,0,$tag_index);
- $page_index=strripos($result,"/page/");
- if($page_index!==false){
- $tag_str=substr($result,$tag_index+5,$page_index-$tag_index-5);
- $result=$link_base."/tag/".rawurlencode($tag_str).substr($result,$page_index);
- }else{
- $tag_str=substr($result,$tag_index+5);
- $result=$link_base."/tag/".rawurlencode($tag_str)."/";
- }
- }
- return $result;
- }
本文作者为mengkun,转载请注明。
楼主能不能录一些技术教程视频让我们学习下,对于菜鸟我来说,有的东西看的比较吃力。
我想问博主用的服务器什么配置。
WordPress站点如果是用Linux主机,这个问题就可以直接忽略了
@懿古今由于某些特殊的原因,导致服务器不得不使用 windows 的系统。因此凭空多出了很多莫名其妙的问题 [wb_二哈]
支持
孟坤,固定连接/%post_id% 生成后的网址是xxx.com/123不是xxx.com/123/代码能给一下吗?
@云同学直接在后面多加一个斜杠不就可以了吗……
/%post_id%/
@mengkunhhhhhhhhhhhhhhhhh,
代码应该咋写呢
@百影阁什么代码?
@云同学赞