摘要
今天分享给大家的这个“WordPress 文章中英文数字间自动添加空格”代码,明月感觉是目前网上分享的最简单、最稳定方法了,至少明月已经使用了近半个月了,非常的稳定,效果也很不错。唯一的遗憾就是不能自动批量的修正早期文章,这个应该是美中不足吧!
今天明月分享个 WordPress 文章中英文数字间自动添加空格的代码,这个代码是明月在【泪雪博客』看到的,当时就用上了,没有想到效果竟然出奇的好。至于这个代码有什么用?其实就是对技术类博客来说在 SEO 方面会有好处,因为技术类博客文章经常性的会有各类英文单词的出现,而搜索引擎在分析文章内容的时候,如果英文单词前后都有一个半角空格的话就会被认为是中英文混排佳的结果,在【写给大家看的中文排版指南』一文里,明月就强调过博客文章排版好在 SEO 方面的重要意义,其中里面就提到了西文排版里关于英文单词要加前后空格的,大家可以看看此文,养成一个好的博客文章排版习惯,对提高博客用户体验度很有益处。
WordPress 在当前主题 functions.php 里添加自定义代码是个很强大的存在,但是因为 functions.php 文件时随着当前主题的更新、更换的,所以大家可以参考【如何方便的在更新主题时保留 functions.php 里的自定义』一文里的办法生成一个属于自己的自定义代码插件来使用,这样就不依赖于主题了,也不怕自己收集整理的实用自定义代码被不小心覆盖丢失了。
不废话了,继续话题,在当前主题 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 后台编辑时执行,也就是当我们发布、更新、保存文章的时候就会自动执行,写入数据库的内容都将是自动添加了空格的,并且处理的对象为文章标题与文章内容。也就是说只对新发布的文章生效,当然你也可以批量的更新一下文章也是可以生效的。
当然为了更加良好的兼容性或者另外一种方法,【泪雪博客』还提供了另外一种方法,就是不直接在写入数据库前执行,而是当 WordPress 输出文章内容的时候执行,代码如下:
//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 文章内容都已经是有空格了的。所以大家在选择和使用上记得先测试一下效果。
今天分享给大家的这个“WordPress 文章中英文数字间自动添加空格”代码,明月感觉是目前网上分享的最简单、最稳定方法了,至少明月已经使用了近半个月了,非常的稳定,效果也很不错。唯一的遗憾就是不能自动批量的修正早期文章,这个应该是美中不足吧!
本文最后更新于2019年7月6日,已超过 1 年没有更新,如果文章内容或图片资源链接失效和错位的,请留言反馈,我们会及时处理,谢谢!
历史文章推荐: