如何简单实现WordPress文章中英文数字间自动添加空格?

 2018-02-04 12:23:13  34 人阅读  0 条评论
 最佳答案:

方法一:编辑文章时自动添加空格写入数据库

在 WordPress 后台编辑时执行,也就是当我们发布、更新、保存文章的时候就会自动执行,写入数据库的内容都将是自动添加了空格的,并且处理的对象为文章标题与文章内容。也就是说只对新发布的文章生效,当然你也可以批量的更新一下文章也是可以生效的。在当前主题 functions.php 文件中添加以下代码即可(不想标题中英文数字键自动添加空格的,只需要删除以下代码的第 4-5 行即可):

  1. //WordPress 文章中英文数字间自动添加空格(写入数据库)
  2. add_filter( 'wp_insert_post_data', 'fanly_post_data_autospace', 99, 2 );
  3. function fanly_post_data_autospace( $data , $postarr ) {
  4.     $data['post_title'] = preg_replace('/([\x{4e00}-\x{9fa5}]+)([A-Za-z0-9_]+)/u', '${1} ${2}', $data['post_title']);
  5.     $data['post_title'] = preg_replace('/([A-Za-z0-9_]+)([\x{4e00}-\x{9fa5}]+)/u', '${1} ${2}', $data['post_title']);
  6.     $data['post_content'] = preg_replace('/([\x{4e00}-\x{9fa5}]+)([A-Za-z0-9_]+)/u', '${1} ${2}', $data['post_content']);
  7.     $data['post_content'] = preg_replace('/([A-Za-z0-9_]+)([\x{4e00}-\x{9fa5}]+)/u', '${1} ${2}', $data['post_content']);
  8.     return $data;
  9. }

方法二:前端输出文章时自动添加空格,不用写入数据库

这样的方式就是当前端显示的内容时才会执行自动给中英文数字间添加空格,其它地方是不会别执行的,同时只针对文章内容生效,文章标题无法被格式化。在当前主题 functions.php 文件中添加以下代码即可:

  1. //WordPress 文章中英文数字间自动添加空格(不写入数据库)
  2. add_filter( 'the_content','fanly_post_content_autospace' );
  3. function fanly_post_content_autospace( $data ) {
  4.     $data = preg_replace('/([\x{4e00}-\x{9fa5}]+)([A-Za-z0-9_]+)/u', '${1} ${2}', $data);
  5.     $data = preg_replace('/([A-Za-z0-9_]+)([\x{4e00}-\x{9fa5}]+)/u', '${1} ${2}', $data);
  6.     return $data;
  7. }
问题标签: ,  更多问题标签>>
编辑作者:懿古今(QQ号:2226524923,QQ群:415623933
免责声明:本文内容来源于互联网,仅供参考学习之用,如有侵权请联系本站修改删除!
问题分类:WordPress问题 ,  建站技术问题 ,  操作系统问题 ,  办公软件问题 ,  搜索热点问题 ,  综合其他问题

相关问题 热门问题近期问题随机标签

 发表评论

中国赞表情摊手表情吃瓜表情笑哭表情偷笑表情衰表情汗表情思考表情费解表情抓狂表情晕表情流泪表情疑问表情嘻嘻表情吃惊表情鼓掌表情