正文:
在浏览文章时,你是否注意到一些作者编辑的文章格式非常规整?特别是在中文、英文和数字之间使用空格进行分隔,使得读者在观感和阅读上更加清晰明了,整体排版也更加美观。然而,如果我们在编写文章时需要手动一个一个地添加空格,那将会非常繁琐且降低写作效率。
因此,我在这里提供了一个简单的方法来实现这样的排版功能。方法非常简单,只需在当前主题的functions.php文件中添加以下代码即可:
方法 1: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 输出文章内容时执行代码,如下所示:
方法 2: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 文件中,也可以,就是将以上两段代码制作成小插件即可,这样就不怕以后主题更新了。至于嫌插件安装太多影响 WordPress 的速度,这里就根据自己需求选择吧,效果都是一样的。
转载请注明:汇站网 » 如何自动在 WordPress 文章和标题的中英文数字之间添加空格