WordPress摘录在大多数语言字符中工作正常,但如果它在中文拼音语言中,则摘录不起作用。 由于汉字中的“无间距”,摘录计数无法过滤字符。 您可以使用以下中文修复:

代码1

function iesay_filter_chinese_excerpt( $output ) {
global $post;
//check if its chinese character input
$chinese_output = preg_match_all("/\p{Han}+/u", $post->post_content, $matches);
if($chinese_output) {
$output = mb_substr( $output, 0, 50 ) . '...';
}
return $output;
}
add_filter( 'get_the_excerpt', 'iesay_filter_chinese_excerpt' );

代码解释。第6行的50是中文字数设定,如果你是纯中文,50则代表50个字和标点符号。如果您的文章有英文摘要。你就需要在多使用下面的一个函数来定义英文默认的字数。

代码2

function ie_longer_excerpts( $length ) {
  // Don't change anything inside /wp-admin/
  if ( is_admin() ) {
    return $length;
  }
  // Set excerpt length to 140 words
  return 100;
}
// "999" priority makes this run last of all the functions hooked to this filter, meaning it overrides them
add_filter( 'excerpt_length', 'ie_longer_excerpts', 999 );

纯中文博客把代码1加入您的主题的functions.php中即可,如果你是中文和非中文混合的博客,请将上面代码1.2都加入到您的主题的functions.php中。注意。第一个代码的字数是第一个代码字数的两倍。如代码中的50和100的关系。

发表评论