许多网站管理员在编辑内容时会特别注重细节,追求完美。他们注意到,当在中文、英文和数字之间正确地添加空格时,文章的格式显得更为规整,阅读体验也更佳,整体排版也更加美观。然而,手动添加这些空格会相当繁琐,可能降低写作效率。
网上有很多关于如何在WordPress中实现这一自动排版功能的教程,包括如何添加php代码、引入JavaScript文件以及CSS样式。但这些方法往往复杂且耗时。因此,这里提供一种简洁的方法来实现这种排版效果。
方法很简单,只需要在你的当前主题的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文章中自动在中文、英文和数字之间插入空格(不保存到数据库)
// 自动在文章内容的中文与英文数字间添加空格(不保存到数据库)
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的性能,你可以根据实际需求来选择合适的方法,效果是一样的。