最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

wordpress中文截斷產(chǎn)生亂碼解決方法

  發(fā)布時間:2011-03-16 22:37:37   作者:佚名   我要評論
wordpress的海量模板是它的亮點之一,國內(nèi)眾多高手設(shè)計的模板已經(jīng)非常漂亮。
可是殘酷的現(xiàn)實是大部分的模板都還是出于老外之手,老外在做模板的時候一般只會考慮到顯示正常即可,而我們?nèi)绻弥形膩韺懖┛彤吘购陀⑽沫h(huán)境有所差別,這樣可能會出現(xiàn)很多的問題,比如字體大小,亂碼,這些都要手動調(diào)整。

話說調(diào)整CSS很多人都已經(jīng)是輕車熟路了,本文不討論。
不過可能大家會遇到類似下圖的現(xiàn)象:
產(chǎn)生亂碼的原因
這種亂碼現(xiàn)象一般是出現(xiàn)在正文截斷的時候,因為Wordpress模板的字符集是UTF-8,它對于英文來說是一個字母一個字節(jié)(8位)來編碼,而中文卻是一個漢字三個字節(jié)(24位)來編碼。所以截斷的函數(shù)只會判斷在多少字節(jié)的地方去截,如果到了那個地方一個漢字只顯示了三分之一或者三分之二的時候,那個漢字就不能完整顯示,而函數(shù)又不能很智能的多截一個字節(jié)或者少截一個,怎么辦?于是就產(chǎn)生了亂碼。這個問題相信在很多有類似功能的國外模板上都會出現(xiàn),這不是數(shù)據(jù)庫的錯,也不是字符集的問題,只是因為制作者在編寫模板的時候并沒有考慮到中文字符可能產(chǎn)生的問題。

所以,我們要替換截斷的函數(shù)。簡單來說,兩步就可以搞定。

第一步
將以下兩個函數(shù)寫進主題所附帶的
functions.php
文件中

復制代碼
代碼如下:

function Limit_Char($max_char = 200, $more_text = '...', $more_link_text = '', $limit_type = 'content') {
if ($limit_type == 'title') { $limiter = get_the_title(); }
else { $limiter = get_the_content(); }
$limiter = apply_filters('the_content', $limiter);
$limiter = strip_tags(str_replace(']]>', ']]>', $limiter));
if (strlen($limiter) > $max_char) {
$limiter = substr($limiter, 0, $max_char+1);
$limiter = utf8_conver($limiter);
echo $limiter;
echo $more_text;
if ($more_link_text != '') {
echo ' <a href="';
echo the_permalink();
echo '">'.$more_link_text.'</a>';
}
} else {
echo $limiter;
}
}
function utf8_conver($str) {
$len = strlen($str);
for ($i=strlen($str)-1; $i>=0; $i-=1){
$hex .= ' '.ord($str[$i]);
$ch = ord($str[$i]);
if (($ch & 128)==0) return(substr($str,0,$i));
if (($ch & 192)==192) return(substr($str,0,$i));
}
return($str.$hex);
}

第二步
把模板文件中比如
index.php
中將截斷函數(shù)替換成新的。

復制代碼
代碼如下:

<?php Limit_Char(200); ?>
<!-- 200是你需要截斷多少字節(jié)的長度,根據(jù)實際情況修改。-->

修改完成,大功告成啦。理論上用這個辦法,只要是截斷的問題都可以得到解決。
BTW:本人菜鳥一只。高手輕點拍磚。

相關(guān)文章

最新評論

京山县| 泸定县| 曲麻莱县| 湘阴县| 合江县| 介休市| 灵宝市| 花莲县| 长治县| 青河县| 和政县| 兴海县| 渑池县| 石楼县| 九龙坡区| 治县。| 宁阳县| 文化| 北京市| 静宁县| 即墨市| 突泉县| 巧家县| 柳林县| 禹州市| 内丘县| 沙坪坝区| 花莲县| 凌源市| 桐梓县| 东海县| 台东市| 宁河县| 怀化市| 军事| 长岭县| 商河县| 广南县| 新和县| 嘉义市| 长岭县|