Зміст

WordPress

Проблеми

Проблеми з кодуванням наприкінці обрізаного тексту

Якщо при обрізанні тексту темою, останні символи можуть бути в невірному кодування - це значить, що тема використовує застарілу функцію обрізання

Наприклад

function get_home_blog_excerpt()
  {
    global $post;
    $excerpt = get_the_content();
    $excerpt = strip_tags(preg_replace(" (\[.*?\])",'',$excerpt));
    $excerpt = strip_shortcodes($excerpt);		
    $original_len = strlen($excerpt);
    $excerpt = substr($excerpt, 0, 145);		
    $len=strlen($excerpt);	 
    if($original_len>275) {
    $excerpt = $excerpt;
    return $excerpt . '<div class="blog-btn-area-sm"><a href="' . get_permalink() . '" class="blog-btn-sm">'.__("Read More","appointment").'</a></div>';
    }
    else
    { return $excerpt; }
  }

В даному випадку винуватець - рядок

$excerpt = substr($excerpt, 0, 145);

Потрібно замінити його на

$excerpt = mb_substr($excerpt, 0, 145);

Правильний код виглядатиме так

function get_home_blog_excerpt()
  {
    global $post;
    $excerpt = get_the_content();
    $excerpt = strip_tags(preg_replace(" (\[.*?\])",'',$excerpt));
    $excerpt = strip_shortcodes($excerpt);		
    $original_len = strlen($excerpt);
    $excerpt = mb_substr($excerpt, 0, 145);	
    $len=strlen($excerpt);	 
    if($original_len>275) {
    $excerpt = $excerpt;
    return $excerpt . '<div class="blog-btn-area-sm"><a href="' . get_permalink() . '" class="blog-btn-sm">'.__("Read More","appointment").'</a></div>';
    }
    else
    { return $excerpt; }
  }

Джерело