在WordPress标题和文章给中文英文数字之间自动添加空格

在文章中给中文和英文之间添加一个空格,会让文章更加美观,让读者阅读有更好的体验。

网上有很多 WordPress 实现中英文自动空格的排版的方式,但是都太复杂。所以我提供一种简单地方法实现这功能。

在主题 functions.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 文章中英文数字间自动添加空格(不写入数据库)
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;
}

此方法不写入数据库,也就是说当我们在发布文章的时候是不执行的,而是在输出文章的时候执行。

以上两种方法均可实现中英文数字之间自动空格,注意:主题升级会导致代码失效, zibll 主题可以新建 func.php 文件,更新不会被覆盖。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
拿起笔,写下你的梦想,你的人生就从此刻起航
提交
头像

昵称

取消
昵称表情代码图片