首页 > 插件推荐 > 后台定制 > 代码实现WordPress文章中英文数字之间自动添加空格排版
2019
06-28

代码实现WordPress文章中英文数字之间自动添加空格排版

通常来说中文与英文、中文和数字之间加上空格的排版会更加好看,但是如果让我们在编辑文章的时候人工添加,感觉非常繁琐和让人厌烦,所以今天MrBang就来跟大家介绍一下 WordPress 如何实现中英文数字之间自动加空格的排版技巧。

第一步:Html 或 Body 标签中加入 Han-La 类

在 html 标签中添加 class=”han-la”(一般在 header.php 文件中)。但是并不是硬性规定,现在很多博客都是通过功能函数动态加载 class 类,那么同样的,你也可以将这个 han-la 类动态加载到 body 中去。将类加载到 html 标签中的方法就不说了,这里说下怎么加载到 body 标签中,当然在这里,你的主题应该是使用了body_class()这个标准函数的。

/**
* WordPress实现中英文数字之间自动加空格排版
* 在body标签中加入han-la类
*/
function lxtx_add_hanla_to_body_class( $classes ) {
    $classes[] = 'han-la';
    return $classes;
}
add_filter('body_class', 'lxtx_add_hanla_to_body_class');

第二步:引入 Js 文件

在 jquery 文件后面引入 text-autospace.min.js 或 text-autospace.js,下载地址为:https://github.com/mastermay/text-autospace.js

/**
* WordPress实现中英文数字之间自动加空格排版
* 加入text-autospace.min.js文件
*/
function lxtx_styles_scripts() {
    //全局加载js脚本
    wp_enqueue_script( 'han-la-js', get_template_directory_uri() . '/includes/js/text-autospace.min.js', array( 'jquery' ), '', true );
}
add_action( 'wp_enqueue_scripts', 'lxtx_styles_scripts' );

注意修改代码中第 7 行的文件引用路径哦~

最后一步:添加 CSS 代码

将以下代码加入你的 style.css 文件中。

/* han-la lxtx */
body.han-la hanla:after {
    content:" ";
    display:inline;
    font-family:Arial;
    font-size:0.89em;
}
body.han-la code hanla,body.han-la pre hanla,body.han-la kbd hanla,body.han-la samp hanla {
    display:none;
}
body.han-la ol > hanla,body.han-la ul > hanla {
    display:none;
}

当然,如果在第一步中,你是将 han-la 类 class 加到 html 标签中的话,在这一步中你需要将以上 CSS 代码中的body全改为html

友情提示:因为添加了 JS 和 CSS 文件,故要记得清空主题插件缓存、CDN 缓存及浏览器缓存哦~

另一种方法

以上方法是把整个页面中的中英文之间都自动加上空格。还有另一种方法是,仅对文章部分的中英文进行排版加空格,方法如下。至于选择哪种方法,各位自便哈~

/**
* WordPress实现中英文数字之间自动加空格排版
* WordPress 文章中英文数字间自动添加空格(不写入数据库)
*/
add_filter( 'the_content','lxtx_fanly_post_content_autospace' );
function lxtx_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;
}

 

最后编辑:
作者:MrBang
WordPress迷

留下一个回复