一、中英文数字混合写作的排版问题

wordpress文章中,默认中英文数字书写的时候,是不会自动插入空格的。但是每次遇到单词或者数字都手动添加空格的话,不太适合中国人的书写习惯。但是不添加空格呢,又不利于排版阅读。所以,最好是自动分析文章内容,在适当位置添加空格。
How to automatically insert space or blank between chinese,English and numbers in wordpress post.

二、第一种添加插入空格空白的方式

这种方式是会把修改的文章存入到数据库的。(在编辑修改更新文章的时候会执行)
在主题所在的目录,一般是wordpress/wp-content/themes下面。
修改function.php文件,在最后添加。

//WordPress 文章中英文数字间自动添加空格(写入数据库)
add_filter( 'wp_insert_post_data', 'fanly_post_data_autospace', 99, 2 );
function fanly_post_data_autospace( $data , $postarr ) {
$data['post_title'] = preg_replace('/([\x{4e00}-\x{9fa5}]+)([A-Za-z0-9_]+)/u', '${1} ${2}', $data['post_title']);
$data['post_title'] = preg_replace('/([A-Za-z0-9_]+)([\x{4e00}-\x{9fa5}]+)/u', '${1} ${2}', $data['post_title']);
$data['post_content'] = preg_replace('/([\x{4e00}-\x{9fa5}]+)([A-Za-z0-9_]+)/u', '${1} ${2}', $data['post_content']);
$data['post_content'] = preg_replace('/([A-Za-z0-9_]+)([\x{4e00}-\x{9fa5}]+)/u', '${1} ${2}', $data['post_content']);
return $data;
}

三、第二种添加插入空格空白的方式

这种方式是在显示文章的时候自动插入的,并没有插入到数据库里面。(个人推荐这种)
在主题所在的目录,一般是wordpress/wp-content/themes下面。
修改function.php文件,在最后添加。



//WordPress 文章中英文数字间自动添加空格(不写入数据库)
add_filter( 'the_content','fanly_post_content_autospace' );
function fanly_post_content_autospace( $data ) {
$data = preg_replace('/([\x{4e00}-\x{9fa5}]+)([A-Za-z0-9_]+)/u', '${1} ${2}', $data);
$data = preg_replace('/([A-Za-z0-9_]+)([\x{4e00}-\x{9fa5}]+)/u', '${1} ${2}', $data);
return $data;
}

参考文章

感谢
《WordPress 文章中英文数字间自动添加空格》





http://xzh.i3geek.com

爱唠叨的老鱼

爱唠叨的老鱼

技术经理,个人站长,创业者

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据