欢迎光临
我们一直在努力

wordpress英文主题截取中文不显示

使用secondtouch主题,页面调用中文摘要失败,查看了一下,原来的是切割中文摘要的时候失败造成的。

摘要的函数
[cc lang=”php”]function content($num)
{
global $post;
$options = get_option(‘second-touch’);

if ($options[‘read_more_style’] == ‘0’){
$read_more_link = ‘ID) . ‘”> ‘.__(‘Read More’,’crum’).’‘;
}

$theContent = get_the_excerpt();
if ($theContent == ”) {
$theContent = get_the_content();
}
$output = preg_replace(‘/]+./’, ”, $theContent);
$output = preg_replace(‘/

.*<\/blockquote>/’, ”, $output);
$output = preg_replace(‘|\[(.+?)\](.+?\[/\\1\])?|s’, ”, $output);
$output = strip_tags($output);
$limit = $num + 1;
$content = explode(‘ ‘, $output, $limit);
array_pop($content);
$content = implode(” “, $content) . $read_more_link;
echo $content;
}
[/cc]
后面的explode函数和implode函数就失效了,所以中文的就不显示。经过查找将函数修改成
[cc lang=”php”]function content($num)
{
global $post;
$options = get_option(‘second-touch’);

if ($options[‘read_more_style’] == ‘0’){
$read_more_link = ‘ID) . ‘”> ‘.__(‘Read More’,’crum’).’‘;
}

$theContent = get_the_excerpt();
if ($theContent == ”) {
$theContent = get_the_content();
}
$output = preg_replace(‘/]+./’, ”, $theContent);
$output = preg_replace(‘/

.*<\/blockquote>/’, ”, $output);
$output = preg_replace(‘|\[(.+?)\](.+?\[/\\1\])?|s’, ”, $output);
$output = strip_tags($output);
//$limit = $num + 1;
$content = mb_strcut($output,0,$num,”UTF-8″). $read_more_link;
//array_pop($content);
//$content = implode(” “, $content) . $read_more_link;
echo $content;
}[/cc]
使用mb_strcut函数就解决了,按字节书截取,还不回因为字符被拆解出现乱码的情况。

在查找过程中,发现下面切割中文字符串的函数,记录下来以后慢慢研究,和上面的函数结合是否能够按照字数输出
[cc lang=”php”]
function mbstringtoarray($str,$charset) {
$strlen=mb_strlen($str);
while($strlen){
$array[]=mb_substr($str,0,1,$charset);
$str=mb_substr($str,1,$strlen,$charset);
$strlen=mb_strlen($str);
}
return $array;
}
$arr = mbstringtoarray($str,”gbk”);
print_r($arr);[/cc]

未经允许不得转载:侯建方的个人网站 » wordpress英文主题截取中文不显示

点击此处获取更多金融后续培训参考答案

登录

找回密码

注册