本文實例講述了WordPress中文截取函數用法。分享給大家供大家參考。具體分析如下:
很多朋友直接使用php substr函數截取中文是會出現亂碼,下面我先來給各位總結中文字符截取的函數,然后以wordpress截取中文標題為例給大家介紹實例應用.
中文截取函數,代碼如下:
復制代碼
代碼如下:function utf8_trim($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);
}
function mul_excerpt ($excerpt,$excerpt_length) {
$myexcerpt = substr($excerpt,0,$excerpt_length);
return utf8_trim($myexcerpt) . '… ';
}
{
$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);
}
function mul_excerpt ($excerpt,$excerpt_length) {
$myexcerpt = substr($excerpt,0,$excerpt_length);
return utf8_trim($myexcerpt) . '… ';
}
或者這樣也可以
復制代碼
代碼如下://自動截斷不亂碼
// jieduan luanma
/////////////////
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 ' '.$more_link_text.'';
}
} 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);
}
// jieduan luanma
/////////////////
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 ' '.$more_link_text.'';
}
} 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);
}
截取中文標題,代碼如下:
復制代碼
代碼如下:echo '</p><p>'. mb_substr(get_the_title(),0,18,"utf8")."..." .'</p></li>';
這樣會出現亂碼的,我在functions.php加入上面的中文截取代碼,然后在想要截取標題的位置,添加get_short_title(),目的就達到,詳細代碼如下:
復制代碼
代碼如下:echo '<li><a href="' . get_permalink() . '">';
get_short_title(18);
echo '</a><data>'. get_the_time('n月j日') .'</data></li>';
get_short_title(18);
echo '</a><data>'. get_the_time('n月j日') .'</data></li>';
當然,其他地方這樣調用也可以,代碼如下:
復制代碼
代碼如下:<?php get_short_title(); ?>
希望本文所述對大家的WordPress建站有所幫助。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。