文章和标题中的英文和中文数字之间会自动添加空格。很多站长在编辑文章时更注重细节,力求做到最好。他们发现别人编辑的文章格式很规则,特别是在中文、英文和数字之间使用空格时。分开来看,观感和阅读更加鲜明,整体排版更加美观,但是如果在写文章的时候手动添加,会特别繁琐,降低写作效率。
网上很多人都分享了WordPress是如何实现中英文数字空格自动排版的,如何添加php代码,引入js文件,添加css代码。看着很头疼,太麻烦了,所以博主在这里提供了一种极简的方式来实现这样的排版功能。
方法很简单,在当前主题functions.php文件中加入如下代码即可:
方法一:WordPress文章中英文数字和中文数字之间自动加空格(写入数据库)
//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文章中英文和中文数字之间自动加空格(不写入数据库)
//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;
}
上面两段代码的实现方式不同,可以选择一个使用,也可以同时使用两个。有朋友想说,为什么要对主题的functions.php文件进行任何修改!只要我的主题更新了,这些修改的代码就没有了?太麻烦了!
别担心!其实还有一种方法,不写functions.php文件,就是把上面两段代码做成小插件!这样您就不必担心未来的主题更新。至于安装过多的插件,影响WordPress的速度,根据自己的需要选择,效果是一样的。